2014-04-15 58 views
0

我有一個Button有底色的ressource定義狀態和背景的Android按鈕背景狀態

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

    <item android:drawable="@color/white" android:state_pressed="true" /> 
    <item android:drawable="@color/gray" android:state_pressed="false" /> 

    <item android:drawable="@color/white" android:state_selected="true" /> 
    <item android:drawable="@color/gray" android:state_selected="false" /> 

</selector> 

當按下它改變顏色我也試過

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

    <item android:drawable="@color/white" android:state_pressed="true" android:state_selected="true" /> 
    <item android:drawable="@color/gray" android:state_pressed="false" android:state_selected="false" /> 

</selector> 

,但是當我應用btn.setSelected(true);什麼也沒有發生

有什麼想法?

回答

0

嘗試btn.performClick();,點擊按鈕。這可能會實現:

void pressButton(Button btn, boolean pressed) { 
    if (pressed != btn.isPressed()) { 
     btn.performClick(); 
    } 
} 
+0

我已經試過了,並沒有做太多:/ –

+0

好的,btn.performClick()怎麼樣?看到我修改後的答案。 – cybersam

0

好,我知道了,

爲未來的人誰都會遇到這樣的,這已經解決了這個問題

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

    <item android:drawable="@color/white" android:state_pressed="true" /> 
    <item android:drawable="@color/white" android:state_selected="true" /> 
    <item android:drawable="@color/tab_gray" /> 

</selector>