更改listview中所选项目的imageview

时间:2014-07-12 03:05:37

标签: android listview android-listview

在我的布局中,我有一个按钮和一个列表视图。如何在单击按钮时更改我选择的项目的图像视图。所以我要说,我选择了5个项目,点击按钮后,这5个项目的图像将被更改。

所以我很困惑我应该使用什么功能。现在我使用了button.setOnClickListener,但似乎错了,因为只有当点击按钮时才会更改第一个项目的imageview。我应该使用listview.setItemOnClickListener吗?或者还有其他方法可以做到这一点吗?

非常感谢!

3 个答案:

答案 0 :(得分:0)

你可以在getView()方法中使用自定义baseadapter for listview和setonclicklistener ....参见教程here这是希望得到帮助

答案 1 :(得分:0)

向适配器中的数据对象添加布尔值。假设你有ArrayAdapter< MyDataObject>。在MyDataObject中添加某种“选定”字段,并在“选择”该行时切换它。

在适配器中覆盖getView(你需要一个自定义适配器,顺便说一下。我只是扩展了ArrayAdapter)。渲染行时,如果“selected”字段为true,则显示“other”图像。

单击该按钮时,请在适配器上调用“notifyDataSetChanged”。这将导致可见行自行刷新(并为每个行调用getView)。

我认为这样可行。

由于您只想在单击按钮时更改图像,因此您需要具有某种全局布尔值,因此在单击按钮之前,getView将不会显示图像。

这里的复杂性是,您必须处理可能已滚出视图的行,这些行没有活动视图,但在逻辑上存在。在这里解释这个概念真的很难。如果你不熟悉行视图的回收,我会建议一些关于ListView的教程。

答案 2 :(得分:0)

您也可以使用按钮单击侦听器以及itemClickListener,但是要在列表中使图像视图处于选定状态,您必须调用imageview的imageview父布局方法。

如果你没有得到我,请发表评论。

由于