java - 如何设置 ListView 中项目的背景颜色

标签 java android listview

我有一个包含多个项目的 ListView ,每个项目都包含多个小部件,例如 ImageView 和复选框。我有一个数组适配器和一个用于搜索功能的过滤器。我遇到的问题是我想选中复选框并发生一些事情。我的测试所做的是选中 ListView 顶部项目中的复选框并让它打印出其状态。我注意到这有效,但是当我向下滚动时,其他复选框也被选中。我做了一些研究,我意识到 ListView 的一个功能是重用并得到很好的优化,因此选中的复选框被重用。我想知道是否可以让我选中列表中某个项目的复选框,并让相应的项目在滚动时变成一种颜色,而不让其他项目变成相同的颜色。

到目前为止,我已经在 View 线性布局上尝试了setbackgroundcolor和setimagebitmap,并且都具有上述结果。

谢谢

最佳答案

实际上,您想要的方法是将 View 和数据代码更好地分开。您的数据项上应该有一个字段,该字段反射(reflect)在复选框和/或背景颜色中。这意味着当您选中复选框时,您不应直接更改背景颜色,而应更改基础数据项的值。此外,每次将数据项绑定(bind)到 View 时,都应该根据此字段值设置复选框。

关于java - 如何设置 ListView 中项目的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6379384/

相关文章:

android - 如何将 .txt 文件读入 ListView?

java - 用于以编程方式部署应用程序的 weblogic 服务器脚本

java - 按钮递减方法

java - 如何使用 UDF DatagramSockets 协调发送和接收

java.lang.IllegalArgumentException : plexus.container.default:无效的模块名称: 'default'不是Java标识符

android - 在抽屉导航中的项目旁边添加图标

android - 检索项目 : 'Theme.AppCompat.Light' in eclipse 的父项时出错

javascript - Jquery mobile获取listview选择的项目并将其文本发送到另一个页面

java - 错误:(7,0)未找到Gradle DSL方法: 'google()'可能MyPartyPlot'正在使用不包含该方法的Gradle版本。\

java - 用户填充的 ListView 中的 TextView 值的总和