繁体   English   中英

单击按钮时如何在回收器视图中更新textview?

[英]How to update textview in recycler view on button click?

每当我单击“喜欢”按钮时,我都想为列表项创建一个“喜欢”按钮,那么textview应该会动态更新。但是当我单击“按钮”时,只有最后一行会更新,其余的不会更改。请指导我完成此任务在listitems中制作like button的方法。(我已经为like button使用了likebutton库)。

RecyclerViewAdapter.java

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{

private static final String TAG = "hh";
private String[] names;
private String[] desc;
private Integer[] imageid;
private Context context1;
ImageButton sare;
public ImageView img;
LikeButton likeButton;
TextView tx1;
TextView tx2;
TextView tx3;
TextView tx4;
public RecyclerViewAdapter(Context context2,String[] names,String[] desc,Integer[] imageid){
    this.names = names;
    this.desc = desc;
    this.imageid = imageid;
    context1 = context2;
}

public class ViewHolder extends RecyclerView.ViewHolder{

    public LikeButton likeButton;

    public ViewHolder(View v){

        super(v);


    }
}

@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){

    View view1 = LayoutInflater.from(context1).inflate(R.layout.recycler_view_items,parent,false);

    ViewHolder viewHolder1 = new ViewHolder(view1);
    img = (ImageView) view1.findViewById(R.id.imgview1);
    likeButton = (LikeButton) view1.findViewById(R.id.cvcv);
    tx3 = (TextView)view1.findViewById(R.id.counttxt);
    likeButton.setOnLikeListener(new OnLikeListener() {
        @Override
        public void liked(LikeButton likeButton) {

            int count = Integer.parseInt(tx3.getText().toString());
            Log.d("fgfgfgfgf", String.valueOf(count));
            tx3.setText(String.valueOf(++count));
            //tx3.setText(String.valueOf(Homefragment.countt));
        }
        @Override
        public void unLiked(LikeButton likeButton) {

        }
    });
    return viewHolder1;
}

@Override
public void onBindViewHolder(ViewHolder Vholder,final int position){
    if(imageid[position] != null) {
       // img.setImageBitmap(imageid[position]);
    }
    else{
    }
    img.setImageResource(imageid[position]);
    tx1.setText(names[position]);

    Vholder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });

}



@Override
public int getItemViewType(int position) {
    return position;
}

@Override
public int getItemCount(){

    return desc.length;
}

}

recycler_view_items.xml

<ConstraintLayout>
............
<LikeButton>
....
</LikeButton>
<TextView>
....
</TextView>   
</ConstraintLayout>

更换

tx3 = (TextView)view1.findViewById(R.id.counttxt);

TextView tx3 = (TextView)view1.findViewById(R.id.counttxt);

likeButton = (LikeButton) view1.findViewById(R.id.cvcv);

LikeButton likeButton = (LikeButton) view1.findViewById(R.id.cvcv);

在你的代码都使用相同的instancetx3likebutton ,并将它保存的最后一个值,希望这有助于

public class ViewHolder extends RecyclerView.ViewHolder{

    LikeButton likeButton;
    TextView tx1;
    TextView tx2;
    TextView tx3;
    TextView tx4;

    public ViewHolder(View v){
    super(v);
    img = (ImageView) v.findViewById(R.id.imgview1);
    likeButton = (LikeButton) v.findViewById(R.id.cvcv);
    tx3 = (TextView)v.findViewById(R.id.counttxt);



    }
}

将您的OnCreateviewHolder更改为:-

@Override
public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){

    View view1 = LayoutInflater.from(context1).inflate(R.layout.recycler_view_items,parent,false);
    return new ViewHolder(view1);
}

OnBindViewHolder到:-

@Override
public void onBindViewHolder(ViewHolder Vholder,final int position){
    Vholder.img.setImageResource(imageid[position]);
    Vholder.tx1.setText(names[position]);

    Vholder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });
    Vholder.likeButton.setOnLikeListener(new OnLikeListener() {
    @Override
    public void liked(LikeButton likeButton) {

        //Logic
    }
    @Override
    public void unLiked(LikeButton likeButton) {

    }
    });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM