ListView简单列表多选择不返回正确的值

时间:2013-05-09 08:50:31

标签: android android-listview

我正在尝试将ListView简单列表作为多项选择,但是当我选择项目编号1和3时,如果我选择任意5个随机选项,则返回的值将为数字1和2返回的值将是前五个值。

SparseBooleanArray checked = modeList.getCheckedItemPositions();
for (int i = 0; i < checked.size(); i++) {
        if (checked.valueAt(i) == true) {
            String tag = (String) modeList.getItemAtPosition(i);
            checkedItems.add(tag);
        }
}

正如我所说,无论我选择什么,即使选择是随机选择,值也会始终返回列表的第一项

1 个答案:

答案 0 :(得分:1)

SparseBooleanArray有点棘手。你应该使用这样的结构:

SparseBooleanArray checked= listView.getCheckedItemPositions();
for (int i = 0; i <= checked.size(); i++) {
     if (checked.valueAt(i)) 
        yourListAdapterArray[checked.keyAt(i)];
}

此外,没有必要:

if (checked.valueAt(i) == true)

更好地使用简单:

if (checked.valueAt(i))