Ich habe versucht, eine ToggleButton
zu verwenden, um als ein Lesezeichen Art der Sache in meiner Anwendung zu handeln. Ich benutze das zum ersten Mal. Ich habe meine Umschaltknopf unter onCreateView()
wie unten erklärt:android toggle button state immer wahr
bmark = (ToggleButton) v.findViewById(R.id.bmark);
bmark.setChecked(false);
Ich versuche, den Staat nur zu wechseln und zeigen eine Toast
Nachricht! Ich habe versucht, die folgenden:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
bmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean status;
if (bmark.isChecked()) status = true;
else status = false;
Log.w("Bmark status",String.valueOf(status));
if (status) {
bmark.setChecked(false);
Log.w("Bmark after true",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Bookmark removed!", Toast.LENGTH_SHORT).show();
} else {
bmark.setChecked(true);
Log.w("Bmark after false",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Post Bookmarked..!", Toast.LENGTH_SHORT).show();
}
}
});
Jedes Mal, wenn ich die Taste drücken, wird der Status zunächst „true“ lesen, obwohl ich es eingestellt habe auf „false“. Nachdem ich setChecked(false)
rufe, wird es auch falsch. Aber wenn ich es noch einmal anklicke, liest es wieder "wahr" und statt "falsch"
Ich weiß nicht, warum es so passiert. Ich möchte es nur jedes Mal umschalten, wenn ich darauf klicke. Bitte hilf mir! Vielen Dank im Voraus :)
FYI die angenommene Antwort ist nicht die optimale Lösung, da sie die Verarbeitung eines booleschen Merkers zur Verfolgung des Status erfordert. – earthw0rmjim
status in antwort ist zusätzlich, weil in orginal code war, vielleicht ist es an verschiedenen ort verwendet, so haben sie nichts optimal oder nicht. –
@MaciejSikora Wie wird es an einer anderen Stelle verwendet, wenn es eine lokale Variable in 'onClick()' ist? Keiner deiner Kommentare ergibt einen Sinn. – earthw0rmjim