2016-12-27 102 views
0

我想要做的是改變按鈕的顏色,如果是由用戶按下。我需要說明紅色/綠色。如果您按下更改綠色並且再次按下紅色,按鈕開始爲紅色。如果再按一次,綠色....用選擇器改變按鈕的顏色,並保持這種顏色

我想找到類似的東西,但我找不到任何東西。 可以用可繪製的選擇器來做到這一點嗎?

這是我想,不留色結束時的新聞

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- green state --> 
    <item 
     android:drawable="@drawable/btn_selector_green" 
     android:state_selected="true"></item> 
    <!-- green state --> 
    <item 
     android:drawable="@drawable/btn_selector_green" 
     android:state_pressed="true"></item> 
    <!-- red state --> 
    <item 
     android:drawable="@drawable/btn_selecto_come_back"></item> 

</selector> 

在此先感謝

回答

0

當按鈕被按下的狀態更改爲「state_pressed」。 但是這不會發生了state_selected,如果你想使用一個按鈕,選中狀態,你必須明確地設置按鈕的狀態通過代碼來選擇,添加onClickListener到您的按鈕,裏面的onClick()做的事:

button.setSelected(!button.isSelected()); 

這將在每次按下按鈕時切換所選狀態。

+0

嗨弗拉內斯科,是不可能通過選擇器drawable? –

+0

您可以,但AFAIK不使用按鈕,請嘗試查看ToggleButton並使用選中的狀態。這應該工作。 https://developer.android.com/guide/topics/ui/controls/togglebutton.html –

0

爲什麼你不做這個programaticaly?

只使用一個簡單選擇器onClickListener

的內部,如果(點擊= 1)

button.setBackgroundResource(R.drawable.green);

別的

button.setBackgroundResource(R.drawable.red);