首页 文章

ListView选定的行颜色消失

提问于
浏览
0

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

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

提前致谢 .

1 回答

  • 3

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

相关问题