作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个名为 ClickableRow
的类,它突出显示该行并更改其中所有 TextViews
的文本颜色,然后将该行返回到其初始设置当用户停止点击或滚动太远之后,但我觉得 android 可能已经有一个内置的功能。
我想要完成的主要任务是更改行中的所有 TextViews
,以便在单击发生时它们为白色,并在单击或滚动发生后返回到之前的颜色。我正在完成这个任务,但现在我只是让它把 TextViews 文本变成黑色。这并不总是正确的颜色,所以有没有办法在点击时突出显示文本并在点击后将其恢复为默认颜色?
谢谢。
最佳答案
Android 中的所有Views
有一个方便的属性,称为Tag
(您可能知道)。
这意味着您可以将任何您想要的数据存储在特定 View 中。
因此,在您的情况下,您将在其标签中存储 textview 所需的颜色,这样您就可以轻松了解其状态:
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);
如果您手动更改
希望对你有帮助!
关于java - 如何在Android中创建 "clickable"行并在TextView中突出显示该行和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649145/
我是一名优秀的程序员,十分优秀!