RecyclerView 适配器更新问题

最近遇到一个问题,网络请求数据时,返回的数据比较晚,Adapter需要用到该数据,所以RecyclerView是没有数据的,刚开始以为是线程问题,一番操作后还是没效果,

解决办法 :
获取到数据后调用Adapter 的 setNewData(); 方法

在这里插入图片描述

延伸, 遇到一个需求 直接上图
在这里插入图片描述
就和指示器差不多, 但是需要点击之后更换背景颜色以及字体颜色和 图标颜色 ,感觉用 SlidingTabLayout 好像实现不了 背景变化这些功能(可能是水平不够,如果有知道的大牛可以评论教教我)

所以用 RecyclerView 代替此控件,感觉还是比较好用的,

这时就遇到了问题,RecyclerView 的 第三方和源生 Adapter 的点击事件都是对 当前 子控件的 反应,

所以点击 每一个 条目后 上一个条目是不会 变回 原来的 样式的, 当然在点击条目后 先用 用 Adapter 的notifyDataSetChanged(); 方法可能会有效果,很不幸我使用后 点击会出现 点击一个条目 其他条目也会有反映的恶心效果,
—解决办法
在 adapter 的 实体类中 加入一个 布尔类型的参数 (起名为 selectInfo),如果为 true 时显示 点击的后的效果(也就是点击样式-在 Adapter 创建视图时中写对应的事件),反之。。。。

然后在 条目点击事件中 更改 该 条目中 selectInfo 为true ,通过for循环,将数据集合(该数据集合是指往Adapter中传递的数据集合)中其他条目的 selectInfo 改为flase,
重点!!!! 更改参数后,调用 Adapter 的 setNewData();
就实现 花样丰富的 指示器效果了

延伸:
实体类中 data 数据 不能使用 int 要使用 Interger
不能使用 double 要使用 Double 否则会出现闪退现象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RecyclerView适配器是用于将数据绑定到RecyclerView视图的一种方式。适配器负责创建视图项并将数据绑定到这些视图项上,以便在RecyclerView中显示它们。 以下是一个简单的RecyclerView适配器示例: ```java public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<String> mData; public MyAdapter(List<String> data) { mData = data; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { String item = mData.get(position); holder.mTextView.setText(item); } @Override public int getItemCount() { return mData.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView mTextView; public ViewHolder(View itemView) { super(itemView); mTextView = (TextView) itemView.findViewById(R.id.text_view); } } } ``` 在此示例中,我们创建了一个名为MyAdapter的适配器类,它接受一个String类型的列表作为数据源。在onCreateViewHolder()方法中,我们从布局文件中创建了一个视图项,并将其包装在ViewHolder对象中返回。在onBindViewHolder()方法中,我们将数据绑定到ViewHolder中的视图项上。最后,在getItemCount()方法中,我们返回数据源中的项数。 RecyclerView适配器是一项非常强大的技术,它可以帮助您更轻松地管理和显示大量数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值