android中ListView是一个经常要用到的一个组件,用到该组件时经常会碰到ListView的Item和Item中的Button不能单击的问题。本人在使用时同样也遇到过这样的情况,共有三种情况,总结如下:情况一:焦点问题: 设置android:descendantFocusability="blocksDescendants"> 和android:focusable="false"该情况比较常见,在网上都可以搜索到相关的解决办法,不在这过多的介绍,先给出我以前总结的方法的连接。http://blog.csdn.net/competerh_programing/article/details/8028764情况二:由Listview的android:layout_height="wrap_content"引起。此类情况完全是由Listview的android:layout_height="wrap_content"引起,修改成一个确定的值就可以解决。详细的请看以下连接http://blog.csdn.net/competerh_programing/article/details/7731599情况三:通过Handler适时更新listview的适配器引起这是我最近才遇到的一种情况:在前面的两种情况都解决的情况下,我的listview没有出现单击item或button不响应的现象。现在是要做出这样的效果,单击item后让其显示高亮,我在listview的适配器中加了一个整形参数标志选中的item并让其背景色高亮,然后再item单击事件中传入该参数,并通过消息队列通知Handler让Listview的adapter更新数据后选中的itme则显示高亮。这样做以后,就导致了如下情况:item一直可以单击响应,在item单击几次后在单击button,button没有了响应,再单击item或其他button,则触发出之前没有响应的单击事件。然后尝试各种单击后,设置item不能获取焦点,都不管用。最后发现只有将handler中listview的adapter数据更新注销掉才解决。其中的缘由还未找到,现共享给大家希望能帮到各位,麻烦知道的大虾可以给出解释。情况三的解决办法:今天又碰到与三类似的情况,这次逃避不了,只有硬着头皮解决。我仔细看看了代码,用Handler更新Listview内容代码的:noticeAdapter.setInfoList(noticeList);noticeAdapter.notifyDataSetChanged();老觉着不对劲,然后再加了一句lvNotice.setAdapter(noticeAdapter);调试通过,问题解决。之前在handler中更新listview后一直都保留setAdapter(noticeAdapter)后来删除发现也没什么影响。现在问题出现了希望给大家以提醒。最后说明一下,我遇到是属于第二种情况  把Listview的android:layout_height="wrap_content"改为fill_parent 就好了。

更多相关文章

  1. android 查看so,jar栈内存使用情况
  2. android之webview无网络情况下简单处理
  3. Android中万能适配器
  4. Android单击显示contextMenu
  5. Android 获取存储卡路径和空间使用情况
  6. Android适配器之------BaseAdapter(例子)
  7. 查看基于Android 系统单个进程内存、CPU使用情况的几种方法
  8. Android之BaseAdapter适配器使用技巧
  9. Android - ListActivity 单击事件的响应

随机推荐

  1. android Launcher3应用列表修改透明背景
  2. 自定义Android应用程序标题条
  3. Android(安卓)Menu
  4. Android/java 多线程(六)-AsyncTask使用
  5. Android(安卓)EditView 属性大全
  6. Android属性
  7. 2013.11.29 ——— android layout不显示
  8. android adb shell 命令大全
  9. android的init.rc文件的语法
  10. Android图形系统的底层实现