【发布时间】:2012-01-24 11:22:49
【问题描述】:
参考下面的截图,ListView 由 3 个TextView 组成。
根据第3个TextView的值,分别给第3个TextView的文本分配颜色。
即1.) 如果值>0
,则为绿色2.)红色如果值
3.) 如果 value=0(默认)则为白色
在适配器内部使用以下代码 sn-p。
if (Float.parseFloat(map.get(RecentChg_COLUMN)) > 0) {
holder.tvRecentChg.setTextColor(Color.GREEN);
}
else if (Float.parseFloat(map.get(RecentChg_COLUMN)) < 0) {
holder.tvRecentChg.setTextColor(Color.RED);
}
第一个屏幕显示正确的输出。
但在方向改变时,输出如第二个屏幕所示。
让我们专注于 SHARIABEES,其中 value=0.0
最初它显示为白色,但在方向改变时它的颜色变为红色。
我不知道为什么会这样。
欢迎提出任何建议......
【问题讨论】:
-
Note that if value is >0 or <0, everything works fine. Problem arises when value=0嗯,为什么,哦,为什么....因为当值为 0 时您不设置颜色...即使您使用的是“持有人模式“(复制粘贴编程ftw,呵呵) -
感谢您的建议,但
listview optimization是什么意思。我是android开发的新手,所以我不知道。 -
google.com/events/io/2010/sessions/… ... 只是 ... lv 没有为每行创建行视图 ... lv 只创建可见行 + 几个并重用它... 所以你有可能'会得到以前是“红色”或“绿色”的行,这就是为什么你还应该为 value == 0 添加代码
标签: android orientation android-listview textview