通过Android CustomListView查找/迭代,以查找所选复选框

时间:2014-01-04 15:17:38

标签: java android listview checkbox

我创建了一个自定义ListView,并填充了ArrayList个对象。它还有一个复选框,允许用户选择某些项目,然后在按钮上单击对它们执行某些操作。

我的问题是:如何遍历ListView代码端? 我查看了ListView的文档,但找不到一个看起来好像是迭代的方法。我是否需要在我的CustomArrayAdapter中实现这一点?

2 个答案:

答案 0 :(得分:2)

你可以用它。你不应该在CustomAdapter中使用nessesary方法。

private void ButtonClick() {
    View v;
    CheckBox chBox;
    for (int i = 0; i < myList.getCount(); i++) {
        v = myList.getAdapter().getView(i, null, null);
        chBox = (chBox) v.findViewById(R.id.checkBox);//your xml id value for checkBox.
        if (chBox.isChecked()) {
            doSomething();
        }
    }
....
}

答案 1 :(得分:2)

我不建议使用Anatol的方法,因为这会为每个项目创建新的视图。解决此问题的最佳方法是处理复选框的单击并相应地更新模型。然后你可以做这样的事情:

ListAdapter adapter = myList.getAdapter();

for (int i = 0; i < adapter.getCount(); i++) {
    if (adapter.getItem(i).isChecked()) {
        doSomething();
    } 
} 

请注意,需要在模型类中创建isChecked。请让我知道,如果你有任何问题。