2013-07-15 3 views
1

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

<?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 он работает отлично. Кто-нибудь знает, что я делаю неправильно?

+0

Просто добавить, что если я Ser андроид: фон него меняется фон. И я хочу изменить textColor. – Mediha

+0

Вы хотите изменить только цвет текста или цвет и стиль текста (подчеркнуть в этом случае)? – pskink

+0

Ваша проблема не решена с ответами? –

ответ

0

Вам нужно добавить атрибут к вашему 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.

0

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

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 
     } 

    }); 
Смежные вопросы