0

我有一个可滚动的列表视图,每行有 2 个文本视图、3 个图像按钮和 1 个复选框。

在 listView 的 Header 中,我在包含 listView 的所有复选框的列上方有一个删除按钮。

当通过滚动 listView 随机检查 2 个或多个复选框时,我必须执行 listView 中对象的删除操作,然后单击顶部的删除按钮。

但问题是我没有得到所选复选框的正确位置。此外,有时我得到正确的位置,但要删除的对象仍然是错误的。因此,由于列表的滚动特性,可能会影响整个功能。

我是否应该在适配器类的持有者中占据一席之地,并将选中或未选中复选框的状态与我的对象绑定。

我应该使用 checkBox.setOnCheckedChangeListener() 还是 deleteButton.setOnClickListener()。如果我使用后一种,那么如何在按下删除按钮之前获取列表中所有相应的复选框被选中的对象?所有相关代码应该放在哪里……在 listAdapter 类或活动中?

请帮我找到解决这个问题的方法..

4

2 回答 2

0

首先,在您的 getView() 方法中,您应该为每个复选框设置一个特定的标签。例如:check1.setTag(position)那么您应该为您的复选框实现 OnCheckBoxChangeListener 和为您的删除按钮实现 OnClickListener。如您所知,onCheckBoxChangeListner 的设置必须在 getView() 方法中。然后,在 onCheckedChanged() 方法中的 chechBoxes 的 getTag() 方法的帮助下,将检查其复选框的列表位置添加到 ArrayList 中。

于 2013-07-27T09:51:09.223 回答
-1

尝试getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {}

于 2013-07-27T09:15:13.790 回答