Recyclerview数据显示错乱完全解析
来源:互联网 发布:淘宝投诉失败怎么办 编辑:程序博客网 时间:2024/06/03 18:24
话不多说先看图:
解决之前的效果:
这是解决之后的效果:
recyclerview的基本用法都不说,比较简单。
如上图,我们选中了item。然后滑动RecyclerView,滑到底部的时候发现也有item被选中了,这就显示错乱了。所以我们的解决办法就是把item选中的状态,也与数据集合一同保存,这样就不会错乱。我们在JavaBean中创建一个字段来保存item的选中状态。
JavaBean代码:
public class BrandEntity { private String brand; private boolean isChecked; public BrandEntity(String brand, boolean isChecked) { this.brand = brand; this.isChecked = isChecked; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public boolean isChecked() { return isChecked; } public void setChecked(boolean checked) { isChecked = checked; }}
适配器中的关键代码:
@Override public void onBindViewHolder(final StreakAdapter.ViewHolder holder, final int position) { holder.tv.setText(mData.get(position).getBrand()); if (mOnItemClickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOnItemClickListener.onItemClick(holder.itemView, position); } }); } holder.tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //设置被选中的状态和字体颜色 if (mData.get(position).isChecked() == false) { mData.get(position).setChecked(true); holder.tv.setTextColor(ContextCompat.getColor(mContext, R.color.c_f9b)); } else { mData.get(position).setChecked(false); holder.tv.setTextColor(ContextCompat.getColor(mContext, R.color.c_60)); } } }); //根据记录的选中状态设置字体颜色 if (mData.get(position).isChecked() == true) { holder.tv.setTextColor(ContextCompat.getColor(mContext, R.color.c_f9b)); } else { holder.tv.setTextColor(ContextCompat.getColor(mContext, R.color.c_60)); } }
当点击 item的时候,把对应的item的选中状态保存到JavaBean中。
当再次展示该item时,根据集合中对应对象的数据来设置item状态。
ListView,GridView同样适用。
源码地址
阅读全文
2 0
- Recyclerview数据显示错乱完全解析
- RecyclerView EditText 数据错乱问题
- RecyclerView完全解析
- RecyclerView完全解析
- android RecyclerView 完全解析
- Android RecyclerView完全解析
- RecyclerView完全解析
- Android RecyclerView 完全解析
- RecyclerView完全解析
- Android RecyclerView完全解析
- RecyclerView完全解析
- RecyclerView完全解析
- Android RecyclerView完全解析
- RecyclerView完全解析
- RecyclerView完全解析@Hongyang
- Android RecyclerView 使用完全解析
- android RecyclerView 使用完全解析
- Android RecyclerView 使用完全解析
- 嵌入式学习日记(十二)
- linux常用的命令7.20
- STM32启动文件_0
- abstract 抽象
- 编程学习应用 Growth 发布 3.0,在碎片时间里练习
- Recyclerview数据显示错乱完全解析
- C++向上造型
- notepad++ pythonScript插件之列转SQL查询条件
- 常用Linux指令之chacl指令
- ES6---箭头函数与function定义函数有什么区别?在箭头函数中,this指向,构造函数,变量提升是如何表现的?
- 一个简单的服务器和客户机程序
- Adroid 多媒体(读取手机内存卡内的音乐文件)
- C语言中缀表达式转后缀表达式并利用后缀表达式求值 (小于10)
- SqlServer表分区