我正在尝试将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);
}
}
正如我所说,无论我选择什么,即使选择是随机选择,值也会始终返回列表的第一项。
答案 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))