Изменение 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
}
});