将突出显示文本应用于多个文本行

时间:2017-01-28 18:46:46

标签: java text highlight

我想问一下,在应用程序的各个位置按下时,我需要创建哪些全局代码来突出显示文本。或者我是否只需要在每个要突出显示的文本正文中为onClick方法添加颜色线?

感谢您的建议。

更具体地说,我的问题,请看一下这段代码:

public class MainActivity extends AppCompatActivity {
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView text = (TextView) findViewById(R.id.textView2);
        text.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                text.setTextColor(Color.GREEN);
            }
        });
    }
}

我在每个页面/屏幕上有3个答案的答案中有54个答案,并且必须对每个答案使用相同的方法 - 按下时会被高亮显示。我想知道如何正确地做到这一点。如果我添加到findViewById(R.id.textView2); textView2之后的另一个文本ID,这不起作用。

1 个答案:

答案 0 :(得分:1)

您需要使用textSelector。

请参阅以下链接,了解如何编写选择器 -

  

Android customized button; changing text color

在您的情况下,如果您希望选择后文本颜色为绿色,您的选择器应该是这样的 -

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:color="defalutColor" />
    <item android:state_selected="true" android:color="greenColor" />
</selector>

你的textView将有textColor =“@ drawable / textSelector”

在代码中你需要为textView编写OnClickListener,在OnClick中你需要指出textView.setSelected(true)这将使textColor变为绿色。