Ich habe eine Methode, um etwas aus einer Datenbank zu löschen. Ich möchte die Bestätigung des Benutzers erhalten. Um dies zu tun, implementiere ich eine boolesche Funktion, um die Bestätigung mit einem Dialog zu erhalten.Dialog Nachricht Tasten nicht tun, was in dem Code ist?
Nun mein Problem ist, dass es egal ist, ob ich Ja oder Nein wähle, bekomme ich immer das gleiche falsche Ergebnis.
(I verwendet final boolean [] beacuse sonst bekomme ich einen Fehler)
Dies ist die Methode:
public boolean alertMessage() { //Confirmation to delete routine
final boolean[] confirmation = {false};
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
// Yes button clicked
confirmation[0] =true;
break;
case DialogInterface.BUTTON_NEGATIVE:
// No button clicked
// do nothing
confirmation[0]=false;
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.sure_delete)
.setPositiveButton(R.string.yes, dialogClickListener)
.setNegativeButton(R.string.no, dialogClickListener).show();
return confirmation[0];
}
Und das ist, wie ich es in meinem löschen Code überprüfen:
//CONFIRMATION
if(!alertMessage()){
return;
}
Update: Versuchen Sie dies mit einem Vorschlag Vorschlag, aber immer noch das gleiche:
public boolean alertMessage() { //Confirmation to delete routine
final boolean[] confirmation = {false};
new AlertDialog.Builder(this)
.setTitle(R.string.delete)
.setMessage(R.string.sure_delete)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
confirmation[0]=true;
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
confirmation[0]=false;
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
return confirmation[0];
}
Ich habe letzte boolean [] becuase mit nur einem boolean ich eine Fehlermeldung erhalten:
"Variable is accessed from within an inner class, needs to be declared final."
Und wenn ich erkläre es endgültig:
"Can not assign a value to final variable"
Also muss ich es verwandeln sich in eine Anordnung. Ich möchte, dass es eine boolesche Methode ist und das Löschen nicht innerhalb des "Ja" implementieren, weil ich es in anderen Methoden wiederverwenden möchte.
Dumme Frage, aber: Warum sind Sie ein Array von boolean verwendet? – compte14031879
Versuchen Sie dies. Ich empfehle Ihnen, die Methode gemäß dem folgenden Link zu verwenden und die Delete-Inside-Positive-Button-Implementierung durchzuführen. http://stackoverflow.com/questions/2115758/how-do-i-display-an-alert-dialog-on-android – vidulaJ
@ FrédéricLétellier: Ich vermute, dass dies getan wird, weil wenn nur 'final boolean' dann onClick würde nicht in der Lage sein, den Wert zu ändern, während der Wert innerhalb des Arrays sein kann. –