кликабельный переработчик, как кнопка радио группы - PullRequest
0 голосов
/ 01 февраля 2020

Я хочу, чтобы при нажатии на итемы в обзоре реселлера, менялся только фон выбранного клика на «set_checked» и фон другого элемента «cardview_light_background». В то же время только фон элемента должен быть «set_checked». Точно так же, как кнопка группы радио, которая в то же время только один элемент кнопки группы радиосвязи является выбранным или активным, а другие неактивны или отменяют выбор в ItemAdapter:


import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

import javax.security.auth.callback.Callback;

import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
public class ItemAdadpter extends RecyclerView.Adapter<ItemAdadpter.MyVeiwHolder> {
   // List<Item> itemList;
    Context mContext;
    sender sender;

//List<Item> itemList;
    ArrayList<Item> itemList = new ArrayList<Item>();
    int a;
    ArrayList<Item> mitem = new ArrayList<>();

    public ItemAdadpter(ArrayList<Item> itemList, Context mContext, ir.aimi.beytoshohada.sender sender) {
        this.itemList = itemList;
        this.mContext = mContext;

        this.sender = sender;
    }

    @NonNull
    @Override
    public MyVeiwHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View aView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycller, parent, false);

        return new MyVeiwHolder(aView);
    }

    @Override
    public void onBindViewHolder(@NonNull final MyVeiwHolder holder, final int positionn) {
        //boolean isSelected = false;

        final Item aItem = itemList.get(positionn);
        //isSelected = false;
        //holder.aAvatar.setImageResource(aItem.getuAvatar());
        //  holder.abackgrond.setBackgroundResource(aItem.getuAvatar());
        ////////////////////////////
        holder.number.setText(aItem.getPrice() + "");
        holder.totaly_number.setText(aItem.getTotal_number() + "");
        holder.title.setText(aItem.getTitle());
        holder.summery.setText(aItem.getSummery());
        holder.progressBar.setMax(aItem.getTotal_number());
        holder.progressBar.setProgress(aItem.getPrice());
        holder.progressBar.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
        // holder.person.setText(aItem.getPerson());
        holder.aItemm.setSelected(false);
        Typeface atf = Typeface.createFromAsset(mContext.getAssets(), "font/KHANDEVANE.TTF");
       holder. totaly_number.setTypeface(atf);
        holder. number.setTypeface(atf);
        farsisaz(holder.totaly_number);
        farsisaz(holder.number);

        holder.aItemm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sender.click(positionn);


                clicable(positionn);
                for (int j=0;j<itemList.size();j++) {
                    if (itemList.get(j).getSelect_own()==true ) {
                        Toast.makeText(mContext, ""+itemList.get(j).getSelect_own(), Toast.LENGTH_SHORT).show();
                        holder.aItemm.setBackgroundResource(R.drawable.set_checked);
                        notifyDataSetChanged();
                    } else {
notifyDataSetChanged();
                        holder.aItemm.setBackgroundResource(R.color.cardview_light_background);
                    }
                }


              /*  if (!holder.aItemm. isSelected()) {
                    holder.aItemm.setBackgroundResource(R.drawable.set_checked);
                    holder.aItemm.setSelected(true);
               } else {
                    holder.aItemm.setSelected(false);
                    holder.aItemm.setBackgroundResource(R.color.cardview_light_background);


              }

                //itemList.get(position).setUboolean(true);
                //Toast.makeText(mContext, "Item:"+aItem.isUboolean(), Toast.LENGTH_SHORT).show();

           */ }
        });


    }


    @Override
    public int getItemCount() {
        return itemList.size();
    }

    public class MyVeiwHolder extends RecyclerView.ViewHolder {
        // public ImageView aAvatar;
        //public boolean IsSelected= false;

        public TextView title, summery, totaly_number, number, person;
        public LinearLayout aItemm;
        public ProgressBar progressBar;


        public MyVeiwHolder(@NonNull View itemView) {
            super(itemView);

            title = itemView.findViewById(R.id.txt_title);
            summery = itemView.findViewById(R.id.txt_summery);
            totaly_number = itemView.findViewById(R.id.txt_totaly_number);
            number = itemView.findViewById(R.id.txt_number);
            person = itemView.findViewById(R.id.txt_person);
            //aAvatar=itemView.findViewById(R.id.img_avatar);
            //boolean IsSelected= false;
            aItemm = itemView.findViewById(R.id.item_layout);
            aItemm.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
            });
            progressBar = itemView.findViewById(R.id.progressBar);


        }
    }

    String formatnumber(double n) {

        DecimalFormat decimalFormat = new DecimalFormat("#,###");
        return decimalFormat.format(n);
    }

    void farsisaz(TextView view) {


        String Text = view.getText().toString();
        if (!TextUtils.isEmpty(Text)) {
            String textchanger = formatnumber(Double.valueOf(new BigDecimal(Text.replaceAll(",", "")).toString()));
            String check = farsi_number_change.changefarsi(textchanger);
            view.setText(check);

        }


    }
    public  void clicable(int position){



                for (int ii=0;ii<itemList.size();ii++){

                            if (ii==position){
                                if (! itemList.get(ii).getSelect_own()==true){
                                itemList.get(ii).setSelect_own(true);
                                    Toast.makeText(mContext, ""+position+" اول "+ii, Toast.LENGTH_SHORT).show();
                                    notifyDataSetChanged();

                            }
                            else {
                                    itemList.get(ii).setSelect_own(false);
                                            notifyDataSetChanged();
                                }break;}
                            else {
                                itemList.get(ii).setSelect_own(false);
notifyDataSetChanged();
                                Toast.makeText(mContext, ""+position+"  "+ii, Toast.LENGTH_SHORT).show();
                            }

                        }





    }
}

это мой класс элементов:

package ir.aimi.beytoshohada;

public class Item {
    public Item(String id, int price, String title, String summery, int total_number) {
        this.id = id;
        this.price = price;
        this.title = title;
        this.summery = summery;
        this.total_number = total_number;
    }

    public String getId() {
        return id;
    }

    public int getPrice() {
        return price;
    }

    public String getTitle() {
        return title;
    }

    public String getSummery() {
        return summery;
    }

    public int getTotal_number() {
        return total_number;
    }
    public boolean getSelect_own() {
        return select_own;
    }

    private String id;
    private int price;
    private String title;
    private String summery;
    private int total_number;
    private boolean select_own;

    public void setSelect_own(boolean select_own) {
        this.select_own = select_own;
    }
}

число Recycler Просмотр элементов неизвестен, поскольку он получен с сервера. этот код не работает. что ваше предложение для этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...