0

我在这个特定的类中实现了一个自定义 Listview,它看起来像

[图像/文本视图/复选框]

当有人点击文本时应该启动另一个类,这目前正在工作,但是当有人点击一个复选框时,我想更新一个存储所有复选框当前状态的数组,我尝试通过使用 onCheckedChanged 方法来做到这一点在自定义适配器中但是它不起作用,因为位置变量不是最终的。所以两个问题

适配器中的 1 是他们获取 Checkbox 位置的一种方式,因此我可以更改数组中的正确位置,并且

2 如果不是,他们在不破坏 onClick 当前功能的情况下在其他地方更新数组的另一种方法。

这是我的适配器中的 onCheckedChanged

CheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton but, boolean b) {
        // TODO Auto-generated method stub


        if(but.isChecked())
        {
            deleteList[???] = true;
        }else{
            deleteList[???] = false;
        }
    }

   });
4

1 回答 1

1

看看这个方法。您可以将标签设置为包含您希望的任何对象的视图,在您的情况下,这可能是与 CheckBox 的行关联的整数值。

因此,当您创建 CheckBox 时:

but.setTag(new Integer(position));

这会将您的 if 语句更改为:

if (but.isChecked()){
    deleteList[((Integer) but.getTag()).intValue()] = true;
} else {
    deleteList[((Integer) but.getTag()).intValue()] = false;
}

让我知道这是否有帮助!

于 2012-09-19T03:11:53.453 回答