Ich möchte ein Dialog-/Popup-Fenster mit einer Meldung für den Benutzer anzeigen, die besagt: “Möchten Sie diesen Eintrag wirklich löschen?” mit einer Schaltfläche, die ‘Löschen’ sagt. Wann Delete berührt wird, sollte dieser Eintrag gelöscht werden, sonst nichts.
Ich habe einen Klick-Listener für diese Schaltflächen geschrieben, aber wie rufe ich einen Dialog oder ein Popup und seine Funktionalität auf?
Warum verwenden Sie nicht die Materialdialogbibliothek!?
– Vivek_Neel
28. Juli 2016 um 18:04 Uhr
Beispiele für Warnungen mit einer, zwei und drei Tasten finden Sie in dieser Antwort.
– Suragch
20. April 2017 um 12:21 Uhr
Mögliches Duplikat von How to Implement a Confirmation (Yes/No) DialogPreference?
– Alwin Kesler
12. März 2018 um 5:26 Uhr
Versuchen Sie diesen Code:
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage("Write your message here.");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder1.setNegativeButton(
"No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
+1. Dies ist ein viel besserer Weg, es zu tun. @Mahesh hat eine Instanz des Dialogs erstellt und ist daher zugänglich cancel() und so weiter.
– Subby
3. August 2014 um 19:04 Uhr
Ist builder1.create() notwendig, weil es beim Anruf gut zu funktionieren scheint builder1.show() direkt?
– rasieren
4. Januar 2016 um 16:01 Uhr
@razzak ja, es ist notwendig, weil es uns eine Dialoginstanz zur Verfügung stellt. Wir können die Dialoginstanz verwenden, um auf die dialogspezifische Methode zuzugreifen
– Mahesh
5. Januar 2016 um 9:48 Uhr
Ich versuche diese Methode, aber das Warnfenster erscheint und verschwindet sofort, ohne dass ich Zeit habe, es zu lesen. Ich habe offensichtlich auch keine Zeit, auf die Schaltflächen zu klicken, um es zu schließen. Irgendeine Idee warum?
– lweinart
6. Januar 2016 um 14:33 Uhr
Egal, ich habe den Grund dafür gefunden, dass ich einen neuen Intent ausgelöst habe und nicht darauf gewartet habe, dass meine Warnfenster erscheinen, wie ich hier finden konnte: stackoverflow.com/questions/6336930/…
– lweinart
6. Januar 2016 um 14:43 Uhr
Wir müssen nicht beide verwenden create() und show()als show() erstellt bereits den Dialog mit dem beschriebenen Inhalt. Laut Dokumentation, create()Erstellt einen AlertDialog mit den für diesen Builder bereitgestellten Argumenten. Es zeigt nicht den Dialog Dialog.show(). Dadurch kann der Benutzer zusätzliche Verarbeitungen vornehmen, bevor er den Dialog anzeigt. Verwenden Sie show(), wenn Sie keine andere Verarbeitung zu tun haben und möchten, dass diese erstellt und angezeigt wird. Daher ist es nur sinnvoll zu verwenden create() wenn Sie vorhaben, den Dialog später anzuzeigen, und Sie seinen Inhalt im Voraus laden.
– Ruchir Baronia
6. August 2016 um 18:22 Uhr
Parameter geändert von getApplicationContext() zu MyActivity.this und begann zu arbeiten.
– O-9
25. Juni 2019 um 9:27 Uhr
Verwenden AlertDialog.Builder :
AlertDialog alertDialog = new AlertDialog.Builder(this)
//set icon
.setIcon(android.R.drawable.ic_dialog_alert)
//set title
.setTitle("Are you sure to Exit")
//set message
.setMessage("Exiting will call finish() method")
//set positive button
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//set what would happen when positive button is clicked
finish();
}
})
//set negative button
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//set what should happen when negative button is clicked
Toast.makeText(getApplicationContext(),"Nothing Happened",Toast.LENGTH_LONG).show();
}
})
.show();
Sie erhalten die folgende Ausgabe.
Verwenden Sie den folgenden Link, um das Tutorial für Warndialoge anzuzeigen.
Nur eine einfache! Erstellen Sie irgendwo in Ihrer Java-Klasse eine Dialogmethode, etwa so:
public void openDialog() {
final Dialog dialog = new Dialog(context); // Context, this, etc.
dialog.setContentView(R.layout.dialog_demo);
dialog.setTitle(R.string.dialog_title);
dialog.show();
}
Erstellen Sie nun Layout-XML dialog_demo.xml und erstellen Sie Ihr UI/Design. Hier ist ein Beispiel, das ich zu Demozwecken erstellt habe:
Außerdem hatte ich so viele Probleme beim Versuch, einen seltsamen System-AlertDialog-Hintergrund loszuwerden, wenn ich ihn mit meiner benutzerdefinierten Inhaltsansicht aufblähte.
– goRGon
23. Juli 2015 um 21:06 Uhr
9635300cookie-checkWie zeige ich einen Warndialog auf Android an?yes
Hier sind Sie ja : developer.android.com/guide/topics/ui/dialogs.html
– Michael Polla
25. Juli 2016 um 14:43 Uhr
Warum verwenden Sie nicht die Materialdialogbibliothek!?
– Vivek_Neel
28. Juli 2016 um 18:04 Uhr
Beispiele für Warnungen mit einer, zwei und drei Tasten finden Sie in dieser Antwort.
– Suragch
20. April 2017 um 12:21 Uhr
Mögliches Duplikat von How to Implement a Confirmation (Yes/No) DialogPreference?
– Alwin Kesler
12. März 2018 um 5:26 Uhr