ListView选定的行颜色消失

时间:2011-03-17 14:13:22

标签: android listview

我有一个自定义ListView活动,它为列表中的所有项目维护一个状态数组(3个选项,默认=黑色,一个单击=绿色,第二个单击=红色)。列表项/行的颜色会根据用户选择而更改,因此我可以使用该项的颜色进行后续数据标注。现在一切正常,直到我将所选项目从屏幕上滚动并将其返回到活动视图,当他们的自定义颜色消失时。状态数组仍然包含所有正确的信息,自定义颜色就消失了。我在ListView上使用OnItemClickListener来处理单击项目时的颜色变化,但我猜这不是最好的方法。处理这个问题的最佳方法是什么?

编辑:为了清楚起见,我允许选择具有多种颜色的多行。

提前致谢。

1 个答案:

答案 0 :(得分:3)

可能是因为你有一个适配器正在为你创建行视图。为了提高效率,适配器将重用在屏幕上不再可见的行视图。这减少了必须保留在内存中的视图数量。为了通过在屏幕上滚动颜色来保持颜色,你必须找到一些方法来存储每个项目应该是什么颜色,然后让你的适配器在构造视图时检查每个项目并相应地设置颜色。