我有一个int变量,显示在RecyclerView列表中的CardView上 . 该值显示为TextView . 一旦该值用于填充OnBindViewHolder中的TextView,如何冻结/永久保存该值,以便下次在创建下一个CardView时运行onBondViewHolder时它不会更改?
“cardNumsTotal”是在ViewHolder中创建的TextView .
“dblist”是用于在RecyclerView中显示模型数据的ArrayList .
“getCardNum”是来自SQLite数据库的整数数据的getter . 它是一个计数器,因此每次为RecyclerView列表创建一个新的CardView时,CardNum会增加1 .
在代码下面,我展示了一些我得到的错误示例以及我想要实现的正确示例 . 我已经在ViewHolder和OnBindViewholder的TextView上尝试了setFreezesText(true)而没有运气 . 当前错误是onBindViewHolder正在使用CardNum的 current 值更新所有CardView的所有TextView . 基本上我希望CardView的TextView填充CardNum整数 at the time that each individual CardView is created 的值 . 由于CardNum是一个计数器,我应该看到CardView#'s being formed in succession: 1,2,3,4,5... The CardView'从RecyclerView列表顶部的最新订购到最旧的 . 因此,如果创建了五个CardView,我应该在顶部看到Card#5,然后是4,3,2,1 .
Adapter.java
...
public class ListViewHolder extends RecyclerView.ViewHolder {
TextView cardNumstotal;
public ListViewHolder(View itemView) {
super(itemView);
cardNumstotal = (TextView)itemView.findViewById(R.id.cardNumstotal);
}
}
...
@Override
public void onBindViewHolder(final ListViewHolder holder, final int position) {
holder.cardNumstotal.setText(String.valueOf(dbList.get(position).getCardnum()));
}
1 回答
这个怎么样?