2015-09-07 228 views
0

如何使用自定義xml文件更改TextView文本顏色。 當我按下按鈕按鈕時,文本應該變成白色,當我釋放按鈕時,文本應該變成黑色。因爲我已經爲所有textviews使用了這個background.xml。所以如果我在一個地方改變它會影響到所有的地方。但文字顏色不變。如何在android中按下按鈕/文本視圖時更改文本顏色

TextView的代碼,我使用:

<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/btn_add" 
    android:background="@drawable/background" 
    android:gravity="left" 
    android:paddingBottom="10dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="5dp" 
    android:paddingTop="10dp" 
    android:text="@string/student_name" 
    android:textColor="@color/black" 
    android:textSize="18dp" /> 

background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:drawable="@drawable/bg1" 
     android:color="@color/White" 
     android:state_pressed="false"/> 

    <item 
     android:drawable="@drawable/bg2" 
     android:color="@color/black" 
     android:state_pressed="true"/> 

</selector> 

回答

1

試試這個:

的TextView

<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/btn_add" 
    android:background="@drawable/background" 
    android:gravity="left" 
    android:paddingBottom="10dp" 
    android:state_selected="true" 
    android:paddingLeft="10dp" 
    android:paddingRight="5dp" 
    android:paddingTop="10dp" 
    android:text="@string/student_name" 
    android:textColor="@drawable/my_text_color" 
    android:textSize="18dp" /> 

繪製/ my_text_color.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- pressed --> 
    <item android:state_pressed="true" android:color="@color/White"/> 
    <!-- focused --> 
    <item android:state_focused="true" android:color="@color/White"/> 
    <!-- activated --> 
    <item android:state_activated="true" android:color="@color/White"/> 
    <!-- checked --> 
    <item android:state_checked="true" android:color="@color/White"/> 

    <!-- default --> 
    <item android:color="@color/black"/> 

</selector> 

在類文件添加以下代碼,

textView.setselected(true); 
+0

@Vignesh KM,請通知我,如果這個代碼是爲你工作。 –

0

Sagar Zala 你給正在工作的代碼。我用這個。

的TextView代碼:

<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/btn_add" 
    android:background="@drawable/background" 
    android:gravity="left" 
    android:paddingBottom="10dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="5dp" 
    android:paddingTop="10dp" 
    android:text="@string/blood_pressure" 
    android:textColor="@drawable/my_text_color" 
    android:textSize="18dp" /> 

background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:drawable="@drawable/bg1" 
     android:state_pressed="false"/> 

    <item 
     android:drawable="@drawable/bg2" 
     android:state_pressed="true"/> 

</selector> 

my_text_color.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- pressed --> 
    <item android:state_pressed="true" android:color="@color/White"/> 
    <!-- focused --> 
    <item android:state_focused="true" android:color="@color/White"/> 
    <!-- activated --> 
    <item android:state_activated="true" android:color="@color/White"/> 
    <!-- checked --> 
    <item android:state_checked="true" android:color="@color/White"/> 

    <!-- default --> 
    <item android:color="@color/black"/> 

</selector> 
相關問題