有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java查找/迭代Android CustomListView,以查找选定的复选框

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

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


共 (2) 个答案

  1. # 1 楼答案

    你可以用这个。您不应该从CustomAdapter中的Nessersary方法中实现任何内容

    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();
            }
        }
    ....
    }
    
  2. # 2 楼答案

    我不建议使用Anatol的方法,因为这将为每个项目创建新的视图。最好的方法是点击复选框并相应地更新模型。然后你可以这样做:

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

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