java - 如何在Android中创建 "clickable"行并在TextView中突出显示该行和文本

标签 java android

我创建了一个名为 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/

相关文章:

java - 如何极其简单的使用Android的C2DM

java - 如何在监听器中使用上下文?

android - 将两个相似的应用程序上传到 Android Market

java - 从广播接收器显示 snackbar ?

java - 如何指定 JAR 库中的依赖关系

java - Spring Data REST 在运行时选择字段

java - Apache HttpComponents 的替代品?

android - Invalid Key Hash Facebook,设置中提供的 key 哈希是正确的

java - `BufferedInputStream.available()` 是否可以安全地获取已收到的字节?

java图像透明度(图像丢失)