我创建了一个名为ClickableRow
的类,它突出显示行并更改其中所有TextViews
的文本颜色,然后在用户停止点击后将行返回到其初始设置滚动太远,但我觉得android可能已经有了内置功能。</ p>
我想要完成的主要任务是更改行中的所有TextViews
,以便在发生单击时它们是白色的,并在单击或滚动发生后返回其先前的颜色。我正在完成这个,但是现在我只是让它将TextViews文本转换为黑色。这并不总是正确的颜色,所以有没有办法在点击后突出显示文本并将其恢复为默认值?
感谢。
答案 0 :(得分:1)
android中的所有Views
都有一个方便的属性叫Tag
(你可能知道)。
这意味着您可以将您想要的任何内容存储为特定视图中的数据。
所以在你的情况下,你会将textview所需的颜色存储在TAG中,这样你就可以了解它的状态:
void setTextViewColor(TextView textView, int color) {
textView.setTag((Integer)color);
textView.setColor(color);
}
void restoreTextViewToItsDefaultColor(TextView textView) {
Integer myColor=(Integer)textView.getTag();
textView.setColor(myColor);
}
所以给定TextView:
TextView myTextView=new TextView(context);
setTextViewColor (Color.RED); // sets to red AND stores red in the tag
稍后,您手动更改为行颜色:
myTextView.setColor(Color.BLUE);
然后恢复原来的
restoreTextViewToItsDefaultColor(myTextView);
如果您手动更改
希望它有所帮助!