zoukankan      html  css  js  c++  java
  • 解决ListView异步加载数据之后不能点击的问题

    在ListView的onScroll事件中执行异步加载数据,然后使用notifyDataSetChange()函数更新适配器,之后发现listView不能点击了,这问题苦恼了我半天。最后在一篇博文中发现调用listView的requestFocusFromTouch()函数终于解决了这问题。 

    Java代码  收藏代码
    1. case LOADAPPNEXT:  
    2.     dismissDialog();  
    3.     this.appLoadingList.addAll((List<AppItemList>) msg.body);  
    4.     onScrolltimes++;  
    5.     runOnUiThread(new Runnable() {  
    6.        public void run() {  
    7.     adapter.notifyDataSetChanged();             listView.requestFocusFromTouch();  
    8.        }  
    9.     });  
    10.     showToast(msg.extra);  
    11.     break;  



    问题最终得到了解决,但是原因本人不是特别清楚,说说本人的拙见,欢迎拍砖! 
    android系统会对每一个运行的UI线程提供缓存机制,也就是说我们在使用诸如listView这种需要异步更新的控件时候,在notifyDataSetChange()之后,务必要记得唤醒或者说是重置你的onItemClickListener。

    路漫漫其修远兮 吾将上下而求索
  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    2.5.3 表单过滤器
    2.5.2 子过滤器
    2.5.1 位置过滤器:
    2.4 通过属性来选择元素
    2.3 根据层级查找元素
    2.2.4 元素选择器
    2.2.3 Class选择器
    2.2.2 ID选择器
  • 原文地址:https://www.cnblogs.com/hudabing/p/3075138.html
Copyright © 2011-2022 走看看