0
你好我正在一个应用程序,我基本上只是做一个自定义多选择listview我做了这样的事情LeftAL只是一个数组列表,这个代码在我的onClickAndroid的列表视图更改图像行
if(LeftAL.contains(position)){
ImageView imageView = (ImageView) lView.getChildAt(position).findViewById(R.id.checkbox);
imageView.setImageResource(R.drawable.checkboxoff);
int i = position;
Integer intObj = new Integer(i);
LeftAL.remove(intObj);
}else{
ImageView imageView = (ImageView) lView.getChildAt(position).findViewById(R.id.checkbox);
imageView.setImageResource(R.drawable.checkbox);
LeftAL.add(position);
}
然后checkboxoff看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/checkbox_pressed_off" />
<item android:drawable="@drawable/checkbox_off" />
</selector>
和复选框上是基本相同的事情只是不同的图像
现在,一切工作正常,因为它应该和我实际上并没有注意到这一点,但当我检查我的列表中的第3项。它检查并添加到数组列表,因为它应该但是如果我向下滚动到下一组列表项目,我会看到第二组数字3也检查实例让我们只说,例如只有3行显示在我的手机上。
Cat
Dog
Egg
-------off screen-----
Fox
Gerbil
Hog
我检查狗的话,我滚动沙鼠也将被检查我想这是让Android一样回收或东西,但它是肯定的问题,我怎么能在解决这一问题,以便只有在清单3中检查不3下一步也是如此。
感谢您的帮助
你能否详细解释一下你的意思是在另一个列表中存储checked/unchecked状态你是在说一个列表数组吗?然后我应该怎么知道它的显示与否?感谢您的回答 – user577732
您需要制作另一个ArrayList,其中包含检查状态,并在用户单击其中一行中的复选框时在其中设置正确的条目。然后在ListAdapter中,您可以查看该ArrayList并查看该框是否应该被检查。你不能依靠UI元素来保存它,因为它正在被回收。 – CaseyB