Android - 通过复选框使用自定义适配器从列表视图中获取项目

Posted

技术标签:

【中文标题】Android - 通过复选框使用自定义适配器从列表视图中获取项目【英文标题】:Android - Get item from listview with custom adapter through checkbox 【发布时间】:2015-08-25 23:57:28 【问题描述】:

我有一个带有自定义适配器(扩展 BaseAdapter)的列表视图。

它接收我必须填充 ListView 的对象列表。

我的对象的一个​​属性是一个名为“checked”的布尔值。

在我的 getView 方法上,这个属性负责检查或不检查我的 View 上的 CheckBox。

一切正常,当我的 Activity 加载时,ListView 出现在我的对象列表(从我的数据库中接收)中,有些已检查,有些未检查。

但是当我选中一个 ListView 的复选框时,我需要更新我的对象,因此它在我的数据库中是有价值的。问题是:

“我如何通过检查复选框知道我必须更新哪个项目(对象)?”

“他们不是同名吗?”

我有一个 listView.setOnItemClickListener(...) 我可以通过它的位置获取我的对象,但是当我单击列表视图本身的“行”而不是我的复选框时它可以工作...我想关于使用它来检查/取消选中我的复选框...但是我该怎么做呢?我可以使用该位置从我的 listView 中获取特定的 CheckBox 吗?

最后,我还认为最好的方法是使用“listView.setOnItemClickListener(...)”来检查我的 CheckBox,一旦我的用户按行检查一个项目比按一个项目检查一个项目会更容易小复选框,那么有人可以帮助我解决我的问题的最佳方法吗?

很抱歉我没有发布我的代码,但现在我无法访问它。

【问题讨论】:

【参考方案1】:

看看这个tutorial

您需要在复选框的 onClick 中添加一个方法,该方法将由活动实现。一种方法是向 adpater 添加一个抽象方法并让 Activity 实现它。让我们调用 onCheckBoxClicked(int position)

【讨论】:

是的,它只是对 int 进行装箱,因为你必须传递一个对象而不是原语

以上是关于Android - 通过复选框使用自定义适配器从列表视图中获取项目的主要内容,如果未能解决你的问题,请参考以下文章

在android编程中选中复选框时,使用警报框显示从给定的自定义列表视图中删除行的代码

选中复选框时检查Android listview多个项目

滚动后未选中 ListView 适配器中的 Android 复选框

如何使用复选框和自定义适配器从 Listview 中获取选定的列表项?

Listitem 点击不适用于复选框 Android

Listview、自定义适配器和复选框