gpt4 book ai didi

java - 在 Recyclerview 中滚动后,以前的数据会更新

转载 作者:行者123 更新时间:2023-12-01 19:42:49 25 4
gpt4 key购买 nike

我正在研究 Recyclerview 适配器,我的 Recyclerview 项目有 1 个 textView 和 1 个按钮,

如果我点击按钮,TextView 值是 Hi 它应该在 Recyclerview 项目上更改为 Hello 。单击按钮时 TextView 值正在正确更改..(即从 Hi 更改为 Hello)

问题是当我滚动 recyclerview 时,滚动后它再次显示以前的值(即再次显示 Hi)。

我知道在堆栈溢出上有很多类似的问题,我已经尝试了其中的大多数问题,但似乎对我的情况没有任何作用。

我的问题已解决,添加了工作代码。(添加到行下方)

listNet.set(position, new NetData(VALUE));

notifyItemChanged(position);

public class NetAdapter extends RecyclerView.Adapter<NetAdapter.MyViewHolder> {

Context context;
List<NetData> listNet;

public NetAdapter(Context context, ArrayList<NetData> listNet){
this.context = context;
this.listNet = listNet;
}

@SuppressLint("ResourceAsColor")
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position){

final NetData netData=listNet.get(position);

holder.tv.setText(netData.dnetqty);
holder.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
String VALUE = "Hello"
holder.tv.setText(VALUE); //Changing Text from Hi to Hello
//Edited Answer
listNet.set(position, new NetData(VALUE));
notifyItemChanged(position);
}
});
}

public class MyViewHolder extends RecyclerView.ViewHolder {

Button btn;
TextView tv;
public MyViewHolder(View itemView){

super(itemView);
btn=itemView.findViewById(R.id.btn);
tv=itemView.findViewById(R.id.tv);
}
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){

LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_recyclerview, parent, false);

return new MyViewHolder(view);
}

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

}

我希望,更改 TextView 值后,该值应该是常量,在滚动后不应更改..

谢谢你..

最佳答案

将文本设置到 TextView 是不够的,因为 recyclerview 会回收 View 。

您需要将更改的文本保存在数据集中,并将这些更改通知到 View 。只有这样您的更改才会持续存在。

关于java - 在 Recyclerview 中滚动后,以前的数据会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664324/

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