2016-12-27 6 views
0

私がしたいのは、ユーザーが押すとボタンの色を変えることです。私は赤/緑を述べる必要があります。ボタンが赤く点灯します。緑色に変わります。もう一度押すと赤色に戻ります。もう一度押すと緑色になります....セレクターでボタンの色を変えてこの色を残す

私は何か類似点を見つけようとしていますが、何も見つかりません。 ドロアブルセレクタで行うことはできますか?

これは私がしようとしていると、事前

答えて

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> 

おかげでボタンが「state_pressed」し、その状態の変更を押して押して終了したときに色残っていないということです。 これはstate_selectedでは発生しませんが、Buttonと選択した状態を使用する場合は、コードで選択するようにButtonの状態を明示的に設定し、onClickListenerをボタンとonClick()に追加する必要があります:

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

これは、ボタンを押すたびに選択された状態を切り替えます。

+0

こんにちはFranesco、セレクタドロワブルではできませんか? –

+0

ボタンを使用せずにAFAIKを使用することはできますが、ToggleButtonを見て、代わりにチェック状態を使用してみてください。それはうまくいくはずです。 https://developer.android.com/guide/topics/ui/controls/togglebutton.html –

0

なぜあなたはそのプログラマティックなことをしないのですか? (クリック= 1)

button.setBackgroundResource(R.drawable.green)場合

だけonClickListenerの内部

を単純なセレクタを使用します。他

button.setBackgroundResource(R.drawable.red)。

関連する問題