【发布时间】:2012-03-03 20:57:17
【问题描述】:
晚上好 StackOverflow
这一次我正在使用包含 TextViews 的 ListView。
我添加了一个 OnItemClick 侦听器。
v.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
TextView tvItm = (TextView) arg1;
int Col = tvItm.getTextColors().getDefaultColor();
if (Col == Color.WHITE)
tvItm.setTextColor(Color.GREEN);
else
tvItm.setTextColor(Color.WHITE);
}
});
如您所见,我切换了文本的颜色,它可以工作。但是,它一次可以处理多个项目,即使我只单击一个项目。所以当我点击第一个项目时,它变成绿色,然后有六个白色项目,第 7 个项目是绿色的,但我从未点击过第 7 个项目!
item1 - 点击 - 绿色
item2 - 未点击 - 白色
item3 - 未点击 - 白色
item4 - 未点击 - 白色
item5 - 未点击 - 白色
item6 - 未点击 - 白色
item7 - 未点击 - 绿色
item8 - 未点击 - 白色
item9 - 未点击 - 白色
等等……
这种模式在所有列表中都继续存在。
此外,如果我快速上下滑动/移动列表,模式会上下移动 1 到 2 个项目。
这是一个屏幕截图:
第一张图片:什么都没做
第二张图片:我点击了“AK Kusine”
第三张图片:我滚动下来,“Allan Malka”也变了..
如果我在侦听器中设置断点,则每次单击列表时它只会停止一次。 是什么导致了这种行为?更重要的是,我该如何解决?
【问题讨论】: