提问者:小点点

在RecycerView(cardview)中单击按钮递增计数器


我正在应用程序的工作,使用回收查看。 我有一个按钮在每个卡片,当点击,将计数点击的数量,并显示在一个文本视图在特定的卡片。 当我运行它时,应用程序崩溃(逻辑错误)。 我做错了什么? (当counter=Model中的counter时,我想设置check复选框true)

public class MorAdapter extends RecyclerView.Adapter<MorAdapter.HViewholder> {

private ArrayList<ZekeritemModel> model=new ArrayList<>();
private int counterr= 0;




public MorAdapter(ArrayList<ZekeritemModel> models,Context context) {
    this.model = models;
}
@Override
public HViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    View v = layoutInflater.inflate(R.layout.mor_items, parent, false);


    return new HViewholder(v);
}




@Override
public void onBindViewHolder(@NonNull MorAdapter.HViewholder holder, int position) {


    holder.plusbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            holder.plustext.setText(String.valueOf(counterr));
            counterr++;
            holder.plustext.setText(String.valueOf(counterr));
            if (counterr>=model.get(position).getCounter()){
                holder.checkBox.setChecked(true);

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

 class HViewholder extends RecyclerView.ViewHolder {
  TextView  plustext;
  CircleButton plusbtn;
  CheckBox checkBox;



     HViewholder(View itemView) {
        super(itemView);
        plusbtn=itemView.findViewById(R.id.pluss);
        plustext=itemView.findViewById(R.id.plustext);
        checkBox=itemView.findViewById(R.id.checkk);
    }
}

}


共1个答案

匿名用户

因为您将“counter”声明为全局的,所以您必须将counter添加到您的模型中