Android 如何更改所选内容的文本视图文本颜色?

Android 如何更改所选内容的文本视图文本颜色?,android,textview,Android,Textview,我的场景是,当用户单击TextViewtext时,它会将其颜色从黑色变为红色。我试图解决这个问题,但什么也没发生。以下是我的努力:我的TextView <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom

我的场景是,当用户单击
TextView
text时,它会将其颜色从黑色变为红色。我试图解决这个问题,但什么也没发生。以下是我的努力:我的
TextView

 <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:textSize="24sp"
        android:textColor="@color/text_selector"
        android:text="Shamima Sultana Shaumi"/>

文本选择器类是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="@android:color/red"/>
    <item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/red" />
    <item android:state_enabled="false" android:color="@android:color/red" />
    <item android:color="@android:color/black"/>
</selector>

每当我点击
TextView
,什么都没有发生。我不知道我有什么问题

你试过了吗


或者尝试使用OnTouchListener,或者如果您想在Java代码中为文本视图执行OnClick,则可以使用OnClick Listener,并将颜色更改为

选择器可以是这样的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:color="@android:color/red" />
    <item android:color="@android:color/black"/>
</selector>

您可以(分别)使用
state\u activated
isSelected
setSelected
,而不是
state\u selected
isActivated
setActivated

来更改单击期间的颜色(只要按下),或者您想在单击后更改文本的颜色?将您的背景设置为可绘制的颜色,而不是textColor。@BartekLipinski我想在单击后更改文本颜色。否,但我想在单击后通过xml选择器更改颜色。
textView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        boolean isSelectedAfterClick = !v.isSelected();
        v.setSelected(isSelectedAfterClick);

        if (isSelectedAfterClick){
            //do something
        } else {
            //do something
        }
    }
});