Ein Knopf
import android.support.v7.app.AlertDialog;
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My title");
builder.setMessage("This is my message.");
// add a button
builder.setPositiveButton("OK", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
Zwei Tasten
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("AlertDialog");
builder.setMessage("Would you like to continue learning how to use Android alerts?");
// add the buttons
builder.setPositiveButton("Continue", null);
builder.setNegativeButton("Cancel", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
drei Tasten
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Notice");
builder.setMessage("Launching this missile will destroy the entire universe. Is this what you intended to do?");
// add the buttons
builder.setPositiveButton("Launch missile", null);
builder.setNeutralButton("Remind me later", null);
builder.setNegativeButton("Cancel", null);
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
Wenn die Schaltfläche Text, um ihn zu lang, um alle horizontal passen, dann wird es automatisch in einer vertikalen Spalte von drei Tasten gelegt bekommen.
Handhabung Button anklickt
Die OnClickListener
war null
in den obigen Beispielen. Sie können null
durch einen Listener ersetzen, um etwas zu tun, wenn der Benutzer auf eine Schaltfläche klickt. Zum Beispiel:
builder.setPositiveButton("Launch missile", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something like...
launchMissile();
}
});
Going On
gibt es viele weiteren Sorten von Dialogen, die Sie machen können. Weitere Informationen hierzu finden Sie unter documentation.
Da nur drei Schaltflächen in einer AlertDialog
unterstützt werden, ist hier ein Beispiel für einen Dialog mit einer Liste.
public class MainActivity extends AppCompatActivity {
public void showAlertDialogButtonClicked(View view) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose an animal");
// add a list
String[] animals = {"horse", "cow", "camel", "sheep", "goat"};
builder.setItems(animals, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0: // horse
case 1: // cow
case 2: // camel
case 3: // sheep
case 4: // goat
}
}
});
// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();
}
}
Siehe this answer für ähnliche Beispiele einer Radiobutton-Liste und eine Checkbox-Liste.
Hinweise
- Verwenden String-Ressourcen, anstatt hart codierte Strings.
- Sie können alles in eine Klasse umwandeln, die
DialogFragment
für die einfache Wiederverwendung eines Dialogfelds erweitert. (Siehe this um Hilfe.)
Diese Beispiele verwendet, um die Support-Bibliothek Versionen 11 vor der API zu unterstützen, so sollte der Import
import android.support.v7.app.AlertDialog;
sein ich weggelassen, um die onCreate
Verfahren in den obigen Beispielen der Kürze halber. Da war nichts Besonderes.
Siehe
auch, das ich den Dialog übergeben müssen sehen? –
@Eduardo Lion, ich nehme an, Sie beziehen sich auf die 'view' in' showAlertDialogButtonClicked (Ansicht anzeigen) '. Das ist nur der Button aus der onClick() 'Methode der Schaltfläche. Du kannst es ignorieren. Der Dialog verwendet es überhaupt nicht. Der Dialog benötigt nur den Kontext, in diesem Fall "das", also die Aktivität. – Suragch