2013-07-27 126 views
0

我有一个可滚动的listview,每行有2个textViews,3个imageButtons和1个checkBox。如何获得滚动listView中复选框的正确位置?

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

当通过滚动listView随机选中两个或多个checkBox并点击顶部的删除按钮时,我必须执行listView中对象的删除操作。

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

我应该在适配器类的持有者的位置,并绑定状态的选中或未选中的复选框与我的对象。

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

请帮我找到一个解决这个问题..

+0

这是一个经典的ListView问题,并在这里一次又一次地讨论。请更好地使用搜索。 – PravinCG

回答

-1

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

+0

不知道这与上述问题有何关系。 – PravinCG

0

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