2016-04-07 9 views
0

Ich habe den folgenden Button Xml mit einem Bild auf der linken Seite.Ändern Android: DrawableLeft auf Button

Ich frage mich, wie möglich, das Bild zu etwas anderem zu ändern, wenn der Benutzer darauf klickt.

<Button 
    android:layout_width="0dp" 
    android:layout_height="24dp" 
    android:gravity="center" 
    android:text="Start" 
    android:textStyle="bold" 
    android:id="@+id/startBtn" 
    android:textAllCaps="false" 
    android:layout_weight="2" 
    android:drawableLeft="@drawable/ic_keyboard_arrow_up_black_18dp" /> 

Antwort

0

Sie benötigen eine Variable definieren Ihre Taste überprüfen ausgewählt ist oder nicht.

private int buttonState = 0; 

yourButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (buttonState % 2 == 0) { 
       yourButton.setCompoundDrawables(R.drawable.ic_selected, null, null, null); 
      } else { 
       yourButton.setCompoundDrawables(R.drawable.ic_not_selected, null, null, null); 
      } 
      buttonState ++; 
     } 
    }); 

Mit Button Variable können Sie den letzten Stand Ihrer Taste folgen.

+0

Hallo Emin, danke für die Antwort, aber Fragen sollen ein Toggle-Verhalten implementieren. Wenn du das erste Mal klickst, wird es zu image2, und klick es wird wieder zu Bild 1 wechseln. – hotspring

+1

Ahh ok, ich bearbeite meine Antwort für deine Situation –

+0

@texas kannst du meine bearbeitete Antwort bitte überprüfen –