当前位置: 代码迷 >> Android >> 关于ListView的疑义
  详细解决方案

关于ListView的疑义

热度:65   发布时间:2016-04-28 04:20:38.0
关于ListView的疑问。

    我做了一个这样的小界面,界面上显示的是用户所有短信,并通过勾选ListView中Item的方式,在点击“确定”按钮的时候,统计所有被勾选的Item中所对应的号码。
    一开始在模拟器上运行没问题,后来装到手机上运行才发现有问题。可能是模拟器上的短信太少,只有一个屏幕的量。
   问题是这样的:比如我勾选了第一个Item,然后往上拉,发现下面有些没有勾选的Item也被勾上了,两个被勾选的位置间隔相同个Item。更奇怪的是,当我往回拉的时候,发现一开始勾选的Item上的“勾”没了,要是反复来回拖动滚轴,Item好像会随意地被勾上,尽管我没有点。。。
    这是我的代码:

list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
boolean state;
CheckBox cb = (CheckBox) view
.findViewById(R.id.cb_listitem_select_sms);
// 改变CheckBox的勾选状态
state = (cb.isChecked()) ? false : true;
cb.setChecked(state);
}
});

新手求解释...
------解决方案--------------------
关键所在不是在你勾选这里,关键是在你的adapter里的getview是怎么写的
------解决方案--------------------
不要用了个适配器。这是布局重用没有初始化的结果。用baseAdapter就好了,注意布局重用,节省空间。注意初始化,避免你上面的问题
------解决方案--------------------
只有单行文本才用simpleadapter   你可以换simpleadapter或者baseadapter看看
  相关解决方案