Изменение textColor при изменении состояния в TextView в Android

Эй, я пытаюсь изменить textColor в TextView когда пользователь нажимает его. Я пытаюсь сделать что-то вроде кнопки гиперссылки в Windows 8, У меня есть этот селектор в res/color folder,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_hovered="true">
        <color android:color="@color/darkBlue"/>
    </item>
    <item  android:state_pressed="true">
        <color android:color="@color/lightBlue"/>
    </item>
    <item android:color="@color/black"/> <!-- default color -->
</selector>

и я использую это так

<TextView
        android:id="@+id/tw_language"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/language_label"
        android:layout_marginRight="3dp"
        android:clickable="true"
        android:autoLink="all"
        android:text="@string/default_language_label"
        android:textColor="@color/language_button"

        />

В действии, когда я получаю ссылку на этот textView, я установил mLanguage.setPaintFlags(mLanguage.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);

чтобы получить подчеркнутый текст. И приложение вылетает, используя это. Если я установлю

android:background="@color/language_button"

Вместо textColor это работает отлично. Кто-нибудь знает, что я делаю не так?

2 ответа

Вам нужно добавить атрибут к вашему TextView, как показано ниже

<TextView
    android:id="@+id/txtResult"
    style="@drawable/language_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
/>

style="@drawable/language_button" это ваш файл селектора. Я определил этот файл в drawable/stack.xml каталог.

Вы можете сделать это:

textView = (TextView)findViewById(R.id.myTextView);
    mMainView.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            textView.setTextColor(Color.GREEN);//set the color here
        }

    });
Другие вопросы по тегам