`
Drakedog
  • 浏览: 47913 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android adapter下checkbox乱序问题

阅读更多
   ListView 中的getChildCount()并不总是等于ListAdapter中的数据行数。当手机一屏显示不了所有数据时(需要翻页),getChildCount()就等于手机一屏幕所显示的行数,小于ListAdapter中的数据行数。而ListView的 getCount()是与ListAdapter中的数据行数相同。

    当光标下移到屏幕最底部,新显示出来的View,最初的3个(不知道为什么是3个),在Adapter中调用getView(int position, View convertView, ViewGroup parent)方法中,会判断convertView为null,而再有新的View就会发现convertView不为空,所以新显示的View其实使用了之前某个View的对象。这就造成了状态可能混乱。比如第一行的checkbox点选时,第11行的也同时会被点选,

所以可以

     1) getView(int position, View convertView, ViewGroup parent){}

方法每行的开始 写这样一行convertView = null;

     2) 用一个List记录你勾选过的每一行的LiseView index
分享到:
评论
1 楼 tediouamarshua 2012-06-23  
好文,在使用GridView数据动态加载的时候也遇到类似问题

相关推荐

Global site tag (gtag.js) - Google Analytics