gpt4 book ai didi

java - 如何在单击按钮时更新回收器 View 中的 TextView ?

转载 作者:行者123 更新时间:2023-12-02 02:05:18 24 4
gpt4 key购买 nike

每当我单击“喜欢”按钮时,我想为我的列表项创建一个“喜欢”按钮,然后 TextView 应该动态更新。但是当我单击该按钮时,只有最后一行会更新,其余行不会改变。请引导我完成在列表项中制作“like”按钮的任务。(我已经使用“likebutton”库来制作“like”按钮)。

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>

最佳答案

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) {

}
});
}

关于java - 如何在单击按钮时更新回收器 View 中的 TextView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50926224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com