nicht SetBackground Ressource image für android-Tasten
Ich will Schaltfläche mit zwei Zuständen:
- AUS
- AUF(oder klicken Sie).
Habe ich normales Bild in den hintergrund der Schaltfläche zu und ich bin versucht, " Bild ändern(gedrückt) aus onClick
Methode, aber es ändert sich nicht.
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
private int flag;
@Override
public void onClick(View v) {
if(flag==1)
{
button1.setBackgroundResource(R.drawable.on);
flag=0;
}
if(flag==0)
{
button1.setBackgroundResource(R.drawable.off);
flag=1;
}
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine weitere option: Sie können
android.widget.ToggleButton
mit Selektoren:Code:
Main layout mit snippet:
res/drawable/toggle_states.xml:
Android setzen wird drawable/icon_alarm_on oder drawable/icon_alarm_off automatisch je nach Zustand der mit
ToggleButton.setChecked()
Methodebenötigen Sie eine
else if
, nichts anderes, wenn flag = 1 ist, setzen Sie den hintergrund aufR.drawable.on
undflag=0;
. Die nächste Anweisung wirdif (flag == 0)
was wahr ist, und Sie legen wiederbutton1.setBackgroundResource(R.drawable.off);
Ihren Anforderungen entspricht zu
ToggleButton
und nicht nurButton
. Sie können Ihre Schaltfläche zum Umschalten Schaltfläche undsetOnCheckedChangedListener()
für die Handhabung von auf-und aus-Zustände.Folgenden code verwenden,
und bereiten ein drawable xml und speichern Sie Sie in den drawable Ordner. name der xml-Datei check.xml
Ihre
check.xml
code sollte wie unten.können Sie versuchen, mit else-Teil
Die unten ist mehr entlang den Linien von dem, was Sie brauchen, aber es gibt einige andere überlegungen.
Tun, müssen Sie daran denken, den Staat über den app-Neustart/config ändert. Wenn ja, müssen Sie verwenden gemeinsame Einstellungen zum speichern von Staat und abrufen.
Die flag-variable, denke ich, muss deklariert werden, außerhalb der Zuhörer oder wird es zurückgesetzt werden, jedes mal, wenn ein click-Ereignis tritt auf, und Sie verlieren den Status. Eine spielen Sie mit ihm. Sollte Euch näher:
Als Sie schon vorbei
View
in dem Aufruf der Funktion können Sie direkt dieview
eher als Aufrufbutton1
. Ist es genau so. Ich habe es in meiner Bewerbung: