带有multiple_choice问题的listview

时间:2011-04-07 13:25:10

标签: android listview

    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)我在滚动时检查项目时出错。我不知道为什么会返回错误值而不是真值。

1 个答案:

答案 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;