如何在选择时更改TextView文本颜色?

时间:2016-04-11 18:33:35

标签: android textview

我的方案是,当用户点击str = [[str stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"] stringByReplacingOccurrencesOfString:@"\\," withString:@","]; 文字时,它会将其颜色变为黑色至红色。我试图解决这个问题但没有发生任何事情。这是我的努力:我的TextView

TextView

和text_selector类是:

 <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> 时,什么都没发生。我无法弄清楚我的问题是什么。

2 个答案:

答案 0 :(得分:5)

选择器可以是例如这样:

<?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>

并将此OnClickListener用于textView

textView.setOnClickListener(new OnClickListener() {

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

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

而不是state_selectedisSelectedsetSelected,您可以分别使用state_activatedisActivatedsetActivated

答案 1 :(得分:0)

您是否尝试过 android TextView : Change Text Color on click

或者尝试使用OnTouchListener,或者如果要执行OnClick,可以使用OnClickListener作为Java代码中的文本视图并转动颜色。