Chinaunix首页 | 论坛 | 博客
  • 博客访问: 562004
  • 博文数量: 192
  • 博客积分: 3780
  • 博客等级: 中校
  • 技术积分: 1487
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 10:11
文章存档

2012年(6)

2011年(160)

2010年(26)

分类: Java

2011-10-18 16:21:42

当 ListView 中的行数 < 10 的时候 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行的也同时会被点选,同样第 21 ,31 ,etc.
所以可以
     1) getView(int position, View convertView, ViewGroup parent){}
                           方法每行的开始 写这样一行convertView = null;
     2) 用一个List记录你勾选过的每一行的LiseView index

这个时候怎么办呢?我们需要一个可以使 ListView 中的 CheckBox 按我们的意愿选中或取消选中,就得自己来这个 ListAdapter 

http://zctya.blog.163.com/blog/static/120917820116593613544/
网址:
 ListCheckBox.rar   
咱自己看源码:
阅读(560) | 评论(0) | 转发(0) |
0

上一篇:yulong

下一篇:shenzhou qunshou 笔试

给主人留下些什么吧!~~