我有 simplelistview(非自定义)和 simple_list_item_multiple_choice 和一个按钮。我想找出用户单击按钮时选中的复选框。我正在使用以下代码:
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ListView lv = MainActivity.this.getListView();
SparseBooleanArray selectedItems = lv.getCheckedItemPositions();
for (int i = 0; i < selectedItems.size(); i++) {
int selectedPosition = selectedItems.keyAt(i);
Toast.makeText(getApplicationContext(), selectedPosition+": checked", Toast.LENGTH_SHORT).show();
}
}
});
}
问题:无论是否被点击,它都会显示所有项目为选中状态。根据 的功能getCheckedItemPositions()
,它应该只返回选中的复选框。
目前,我lv.isItemChecked(i)
在 for 循环中使用了它,它告诉我是否选中了此复选框。但是这种方式是不正确的,因为如果列表中有 100 个项目,那么我的循环将运行 100 次。
请帮帮我!!