Nachdem ich viel auf SO gesucht habe, kam ich auf eine nicht so gute, aber ordentliche Workaround.
Deklarieren Sie eine boolean
Variable für jeden RadioButton, den Sie haben, initialisieren Sie sie mit false
, und ändern Sie den Status der Variablen und des RadioButton bei jedem Klick.
boolean isToggledRadio1 = false;
RadioButton radio1 = (RadioButton) findViewById(R.id.radiobutton1);
radio1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isToggledRadio1 = !isToggledRadio1; //Switch boolean value
RadioButton rb = (RadioButton)v;
rb.setChecked(isToggledRadio1);
}
});
Ich weiß, dass es ideal ist eine Checkbox zu verwenden, aber wenn jemand die Radiobutton muss, dann müssen sie die Radiobutton.
Dies ist keine optimale Lösung, da es im Grunde die Taste verwendet die Taste jedes Mal, zweimal klickt der Benutzer (eine davon ist das Standardverhalten, ist das zweite Mal in Ihrer Onclick-Funktion), wenn Sie also‘ Mit einem OnCheckedChangeListener
erhalten Sie wahrscheinlich zwei Anrufe für den gleichen Klick.
Es gibt eine weitere Problemumgehung, die Änderung der android:button
in einem Kontrollkästchen zu einem anderen Zeichen mit einer XML-Vorlage, aber es ist ein bisschen komplexer, erfordert mindestens 2 weitere Dateien für die Staaten.
Aber so funktioniert ein Radiobutton * soll funktionieren. –