如何在Android中创建“可单击”行并突出显示TextView中的行和文本

时间:2014-03-26 00:28:21

标签: java android

我创建了一个名为ClickableRow的类,它突出显示行并更改其中所有TextViews的文本颜色,然后在用户停止点击后将行返回到其初始设置滚动太远,但我觉得android可能已经有了内置功能。<​​/ p>

我想要完成的主要任务是更改行中的所有TextViews,以便在发生单击时它们是白色的,并在单击或滚动发生后返回其先前的颜色。我正在完成这个,但是现在我只是让它将TextViews文本转换为黑色。这并不总是正确的颜色,所以有没有办法在点击后突出显示文本并将其恢复为默认值?

感谢。

1 个答案:

答案 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);

如果您手动更改

希望它有所帮助!