adapter刷新数据的时候,要能够刷新成功,要保证每次刷新的时候都是改变数据源。

于是,我这样做了,在适配器的构造方法里面写到:

private List<ListBean> listItems = new ArrayList<>();
private Context mContext; public ResultAdapter(Context context, List<ListBean> listItems) {
super(context);
this.mContext = context;
this.listItems = listItems;
}

刷新数据的时候调用adapter里面的方法:(用这种方法每次刷新都是改变adapter里面的数据源,保证每次都能够刷新成功,这种思路是没错的,然而,我犯放了一个错误,导致刷新后数据被清空了)

/**
* 刷新数据
*
* @param listItems
* @param keyWord
*/
public void setData(List<ListBean> listItems) {
if (listItems != null) {
this.listItems.clear();
this.listItems.addAll(listItems);
}
notifyDataSetChanged();
}

我犯了什么错误呢?

我的构造方法错了,在adapter的构造方法里面,我用的是

this.listItems = listItems;

这样子传进去的listItem与adapter里面的listItem指向同一个对象,在刷新数据的方法中,我用了

if (listItems != null) {
this.listItems.clear();
this.listItems.addAll(listItems);
}

adapter里面的listItems被清空了,导致外部传进来的listItem也被清空了,于是this.listItems.addAll(listItems);后依然为空,最终刷新数据后无反应。

转载请标明出处:http://www.cnblogs.com/tangZH/p/8535653.html ,http://77blogs.com/?p=632

Adapter刷新数据的坑的更多相关文章

  1. 浅析android适配器adapter中的那些坑

    做项目中遇到的,折磨了我将近两天,今天把经验分享出来.让大家以后少走点弯路,好了.简单来说一下什么是android的适配器,怎样定义.怎样添加适配器的重用性.怎样去减少程序的耦合性 适配器顾名思义是用 ...

  2. RecycleView文字吸顶,点击吸顶布局刷新数据

    实现效果 需求 Recycle有一个头布局,可以跟随列表进行滑动 点击头布局之后可以重新加载列表数据 随着头布局的消失,留下一个可点击的布局(该布局在头布局中) 效果类似下图: 淘宝的商品列表,随着我 ...

  3. Android RecyclerView使用ListAdapter高效刷新数据

    原文:Android RecyclerView使用ListAdapter高效刷新数据 - Stars-One的杂货小窝 我们都知道,当RecyclerView数据源更新后,还需要通过adapter调用 ...

  4. SQL实现类似于自动刷新数据的功能

    有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据.但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了.貌似SQL没有像 ...

  5. jsTree 的简单用法--异步加载和刷新数据

    首先这两个文件是必须要引用的,还有就是引用 jQuery 文件就不说了: <link href="/css/plugins/jsTree/style.min.css" rel ...

  6. iOS - UIRefreshControl 刷新数据

    前言 NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIRefreshControl : UIControl 1.UIRefresh ...

  7. 解决JQuery中datatables设置隐藏显示列多次提交后台刷新数据的问题

    此次项目开发过程中用到了Jquery的Datatables插件,无疑他是数据列表展示,解决MVC中同步过程中先走控制器后返回视图,查询数据过程中无法提示等待的弊端, 而且他所提供的各种方法也都有较强的 ...

  8. POI刷新数据后的函数(公式)更新问题

    使用POI将Excel模板中的数据进行更新,这应该是很常见的操作 下面就贴上我的一小段代码 public class ModifyExcel { /** * @param fileName Excel ...

  9. C# 数据库dataGridView刷新数据和主外键判断

    本文主要讲诉在使用VS2012+SQL Server数据库做系统中,通常会遇到几个问题.使用dataGridView控件在修改.删除.插入数据后,怎样刷新数据显示操作后的结果.同时在对数据操作时通常会 ...

随机推荐

  1. 发一些Java面试题,上海尚学堂Java学员面试遇到的真题,值得学习

    1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java AP ...

  2. [SQL]LeetCode601. 体育馆的人流量 | Human Traffic of Stadium

    SQL架构 Create table If Not Exists stadium (id int, visit_date DATE NULL, people int) Truncate table s ...

  3. [Swift]LeetCode653. 两数之和 IV - 输入 BST | Two Sum IV - Input is a BST

    Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...

  4. Oracle常用语句

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  5. git push每次提交都要输入用户名的解决方案

    前言 最近把代码从csdn转移到gitee后,每一次git push都需要输入用户名和密码,比较麻烦,那有没有一个办法可以去掉这个步骤呢? 原因 每次都需要输入用户名和密码是因为你采用的是https方 ...

  6. fiddler抓取https失败解决方案

    众所周知,Fiddler默认只能抓取到http请求,要抓取到https请求我们还需要FiddlerCertMaker插件的支持, 至于怎么使用fiddler抓https及插件的使用方式,大家可以去百度 ...

  7. app自动化问题点整理

    1.配置SDK环境发现adb无法生效: 解决方案: 这个问题一般就是你的环境变量没有配置好,很多同学比较容易出现的点就是win10系统的环境变量配置: 一定要注意打开path添加:%ANDROID_H ...

  8. Spring中你可能不知道的事(一)

    Spring作为Java的王牌开源项目,相信大家都用过,但是可能大家仅仅用到了Spring最常用的功能,Spring实在是庞大了,很多功能可能一辈子都不会用到,今天我就罗列下Spring中你可能不知道 ...

  9. MySQL casting from decimal to string(mysql decimal 转 varchar)

    今天群里一个哥们问我mysql怎么将decimal转成varchar,经过查阅资料发现,mysql好像不能将decimal直接转换成varchar,但是可以转成char,原文链接:http://sta ...

  10. Python内置函数(32)——input

    英文文档: input([prompt]) If the prompt argument is present, it is written to standard output without a ...