之前Android项目中用的是PullToRefreshListView,我就在想是不是这个库不太好用?于是我换成了RecyclerView,结果效果还是一样,数据本来已经刷新了notifyDateSetChanged也执行了,但是列表里的展示还是不变,必须点一下手机屏幕,数据才能刷新出来。【notifyItemChanged()等也同理】

百度了一堆,各种方法也都试了,还是不行,要不就是效果极差,要不就是一点效果都没有。最后查了无数遍代码,终于找到了问题所在:

更新UI要在 主线程 执行

代码示例:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{private static final int CHANGE_TEXT=1;private TextView mText;private Button mBtn_change;//主线程private Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case CHANGE_TEXT://在这里(主线程)可以进行UI操作mText.setText("HelloJohnnyZhou");break;default:break;}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mText= (TextView) findViewById(R.id.tv_text);mBtn_change= (Button) findViewById(R.id.btn_change);mBtn_change.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btn_change://开启一个子线程new Thread(new Runnable() {@Overridepublic void run() {//新建一个Message对象,存储需要发送的消息Message message=new Message();message.what=CHANGE_TEXT;//然后将消息发送出去handler.sendMessage(message);}}).start();break;default:break;}}
}

RecyclerView的notifyDateSetChanged()等不起作用,必须点击屏幕列表才会刷新的解决方法相关推荐

  1. android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...

    1.RecyclerView的Item宽度不能全屏显示 出现这种的原因有两种: 1.第一种是在adapter中加载inflater时parent传入为null 2.如果第一种不行,第二种原因就是在Re ...

  2. 排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法

    排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法 参考文章: (1)排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法 (2)https:// ...

  3. idea修改java和jsp不起作用_使用IDEA编写jsp时EL表达式不起作用的问题及解决方法...

    在使用IDEA开发maven+springMVC项目时遇到不加载EL表达式的问题,怎么处理呢?下面小编给大家带来了实现代码,一起看看吧 加载如下JSP代码: Title ${lists.usernam ...

  4. mvc:interceptor 不起作用的一个解决方法

    拦截器配置1: <mvc:annotation-driven /> 在另外的文件(非xxx-servlet.xml)中配置 <mvc:interceptors> <mvc ...

  5. ie6 z-index不起作用的解决方法

    一.概念 z-index伴随着层的概念产生的.网页中,层的概念与photoshop或是flash中层的概念是一致的.熟悉photoshop或是flash的应该知道,层级越高(图层越靠上),越在上面显示 ...

  6. php垂直对齐,CSS垂直对齐不起作用的原因及解决方法

    verticla-align用于调整内联元素的垂直位置,但是有时候它不起作用,本篇文章将来给大家分享关于CSS垂直对齐不起作用的原因和解决方法. 我们先来分析一下导致垂直对齐无效的原因 我想很多人都会 ...

  7. android 下拉刷新实现方式,Android RecyclerView设置下拉刷新的实现方法

    Android RecyclerView设置下拉刷新的实现方法 1 集成 SwipeRefreshLayout 1.1 xml布局文件中使用 android:id="@+id/refresh ...

  8. php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用: 复制代码 - phpStudy...

    PHP is_subclass_of函数的一个BUG和解决方法 is_subclass_of的作用: bool is_subclass_of ( object object, string class ...

  9. Entity Framework默认值字段不起作用解决方法

    Entity Framework默认值字段不起作用解决方法 参考文章: (1)Entity Framework默认值字段不起作用解决方法 (2)https://www.cnblogs.com/fox- ...

最新文章

  1. 转:设置session过期时间
  2. Flutter 28: 图解 ListView/GridView 混用时滑动冲突小尝试
  3. python如何修改excel数据库_python学习笔记-day7-2-【python从mysql数据库导数据到excel,读excel,修改excel】...
  4. 【动态规划】【线段树】 Codeforces Round #426 (Div. 1) B. The Bakery
  5. EMNLP'20最佳论文揭晓!八块肌肉=能打电话?!
  6. 80后程序员必须知道的编程语言和它们的创造者
  7. 什么浏览器好用_手机浏览器不只UC,好用的浏览器还有这些
  8. 2.图像作为函数 | 裁剪、颜色通道、图像相加_5
  9. iOS内存管理机制解析
  10. 应用程序部署策略——虚拟机与容器
  11. openvswitch dpdk
  12. 分布式发布订阅模型网络的实现有哪些
  13. 纯新手DSP编程--5.21--RTDX
  14. java中解决脏读_JAVA数据脏读
  15. 动态规划-打气球的最大分数(python实现)
  16. 迅雷导出ed2k到eMule链接无效处理
  17. Mac Grapher(图形软件)
  18. 第四次的面试 C++ 面试 (迷茫) + (复习知识点)
  19. java 二维表格_实现二维表
  20. 初吻,他吻了你哪里?

热门文章

  1. windows内网端口映射到外网(可用于远程桌面、数据库的端口)
  2. 浪潮发布新型水冷服务器 可以快装移动式液冷集群
  3. 2019中山大学计算机考研人数,中山大学2019考研报录情况汇总及分析
  4. 春色弄眉,展一季的顾盼
  5. Linux如何查看系统信息
  6. 前端基础:CSS字体属性
  7. ADB命令自动刷抖音
  8. 借助Bing Translate API翻译API实现网站多国语言翻译功能
  9. 格式工厂 wav 比特率_Easy MP3 Converter Pro for mac(音频格式转换软件) 3.0.0
  10. unittest测试框架简介