Java RecyclerView增加(+;)和减少(-)按钮对于每个项目都不能正常工作

Java RecyclerView增加(+;)和减少(-)按钮对于每个项目都不能正常工作,java,android,json,Java,Android,Json,我在我的recyclerview中有两个按钮,用于数量值的递增(+)和递减(-),就像购物车应用程序一样,当增加第0项的项目值时,我的下一项,即第1项,增加第0项的上一个值,意味着如果第0项的值为4,对于第1项,如果增加1,则直接取5,而不是从0开始 public class TeaListAdapter extends RecyclerView.Adapter<TeaListAdapter.MyViewHolder> { private int num=0; p

我在我的recyclerview中有两个按钮,用于数量值的递增(+)和递减(-),就像购物车应用程序一样,当增加第0项的项目值时,我的下一项,即第1项,增加第0项的上一个值,意味着如果第0项的值为4,对于第1项,如果增加1,则直接取5,而不是从0开始

public class TeaListAdapter extends RecyclerView.Adapter<TeaListAdapter.MyViewHolder> {
    private  int num=0;

    private List<TeaListPOJO> teaItemList;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView tvitemName, tvitemRate,number;
        public ImageView ivItemImg;
        public Button btnIncrease,btnDecrease;
        RecyclerView.ViewHolder holder;


        public MyViewHolder(View view) {
            super(view);
            tvitemName = (TextView) view.findViewById(R.id.txt_item_name);
            tvitemRate = (TextView) view.findViewById(R.id.txt_item_price);
            ivItemImg= (ImageView) view.findViewById (R.id.iv_item);
            number=(TextView) view.findViewById (R.id.integer_number);
            btnIncrease =view.findViewById(R.id.btn_increase);
            btnDecrease = view.findViewById(R.id.btn_decrease);

        }
    }


    public TeaListAdapter(List<TeaListPOJO> teaItemList) {

        this.teaItemList = teaItemList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.rv_placeorder_items, parent, false);

        return new MyViewHolder (itemView);
    }

    @Override
    public void onBindViewHolder(final MyViewHolder holder, final int position) {

        final TeaListPOJO tealist = teaItemList.get(position);
        holder.tvitemName.setText(tealist.getItemName ());
        holder.tvitemRate.setText(AppConstants.INDIAN_RUPEE_SIGN.concat (tealist.getItemRate ()));
       // holder.number.setText (tealist.getQty ());
        holder.btnIncrease.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View view) {
                num++;
                holder.number.setText (String.valueOf (num));
                notifyDataSetChanged();
            }
        });
        holder.btnDecrease.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View view) {
                if(num>0)
                num--;
                holder.number.setText (String.valueOf (num));

            }
        });

        byte[] decodedString = new byte[0];
        try {
            decodedString = Base64.decode(tealist.getImageStr(), Base64.DEFAULT);
            // tenantModelPOJO.setLogo(decodedString);
            Bitmap bmp = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
            holder.ivItemImg.setImageBitmap(Bitmap.createScaledBitmap(bmp,60,
                    60, false));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


    @Override
    public int getItemCount() {

        return teaItemList.size();
    }
}
public类TeaListAdapter扩展了RecyclerView.Adapter{
私有int num=0;
私人名单;
公共类MyViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图tvitemName、tvitemRate、number;
公共图像视图;
公共按钮BTN增加,BTN减少;
RecyclerView.ViewHolder;
公共MyViewHolder(视图){
超级(视图);
TVTItemName=(TextView)view.findViewById(R.id.txt\u item\u name);
tvitemRate=(TextView)view.findViewById(R.id.txt\u item\u price);
ivItemImg=(ImageView)view.findViewById(R.id.iv_项);
number=(TextView)view.findViewById(R.id.integer\u number);
btnIncrease=view.findviewbyd(R.id.btn\u增加);
btnDecrease=view.findViewById(R.id.btn\u减少);
}
}
公共TeaListAdapter(列表teaItemList){
this.teaItemList=teaItemList;
}
@凌驾
公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){
View itemView=LayoutInflater.from(parent.getContext())
.充气(R.layout.rv\u placeorder\u项目,父项,错误);
返回新的MyViewHolder(itemView);
}
@凌驾
公共无效onBindViewHolder(最终MyViewHolder,最终int位置){
final TeaListPOJO tealist=teaItemList.get(位置);
holder.tvitemName.setText(tealist.getItemName());
holder.tvitemRate.setText(AppConstants.INDIAN_rupe_SIGN.concat(tealist.getItemRate());
//holder.number.setText(tealist.getQty());
holder.btnIncrease.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
num++;
holder.number.setText(String.valueOf(num));
notifyDataSetChanged();
}
});
holder.btnderence.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(数值>0)
num--;
holder.number.setText(String.valueOf(num));
}
});
字节[]解码字符串=新字节[0];
试一试{
decodedString=Base64.decode(tealist.getImageStr(),Base64.DEFAULT);
//tenantModelPOJO.setLogo(解码字符串);
位图bmp=BitmapFactory.decodeByteArray(decodedString,0,decodedString.length);
holder.ivItemImg.setImageBitmap(位图.createScaledBitmap(bmp,60,
60,假);;
}捕获(例外e){
e、 printStackTrace();
}
}
@凌驾
public int getItemCount(){
返回teaItemList.size();
}
}

您的问题是只为所有视图声明一个变量,您应该从
TextView
中获取值,然后进行修改,然后将其设置回
TextView
试试这个代码

 holder.btnIncrease.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View view) {
               int val = 0; 
                try{

                val = Integer.parseInt(holder.number.getText().toString());  
                }catch(Exception e) {
                val = 0; 
                }
                holder.number.setText (String.valueOf (val++));

            }
        });
        holder.btnDecrease.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View view) {


                int val = 0; 
                try{

                val = Integer.parseInt(holder.number.getText().toString());  
                }catch(Exception e) {
                val = 0; 
                }
                if(val>0) val--;
                holder.number.setText (String.valueOf (val));

            }
        });

这对我有用,谢谢。!但在您的代码中,问题是您已经通过后期递增直接传递(设置)了值,而不是您应该首先递增值并将值设置为textview;内部按钮点击并放置支架。设置为可循环(假);;外部按钮点击