SparseBooleanArray selectedItem=catogoryList.getCheckedItemPositions();
for(int i=0;i<selectedItem.size();i++)
{
System.out.println("Array val:"+selectedItem.valueAt(i));
if(selectedItem.valueAt(i))
{
if(temp.contains(list.get(position)))
{}
else
temp.add(list.get(position));
}
else
{
temp.remove(list.get(position));
}
}
我使用带有multiple_choice的listview(带复选框的listview)当我获得listview中的项目时,如果我滚动列表视图我没有得到正确的值,那么我会收到正确的值。我发现selectedItem.valueAt(i)我在滚动时检查项目时出错。我不知道为什么会返回错误值而不是真值。
答案 0 :(得分:0)
你如何获得你的价值观?这个过程应该是这样的:
SparseBooleanArray checked = getCheckedItemPositions();
List<String> checkedResult = new ArrayList<String>();
for (int i = 0; i < checked.size(); i++) {
if (checked.valueAt(i)) {
checkedResult.add(getAdapter().getItem(checked.keyAt(i)).toString());
}
}
return checkedResult;