jeden przycisk

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();
}
}
dwa przyciski

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();
}
}
Trzy przyciski

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();
}
}
Jeśli tekst przycisk to zbyt długo, aby zmieścić się w poziomie, to zostanie automatycznie rozplanowane w pionowej kolumnie z trzema przyciskami.

Obróbka kliknięcia przycisku
OnClickListener
null
był w powyższych przykładach. Możesz zastąpić null
detektorem, aby coś zrobił, gdy użytkownik dotknie przycisku. Na przykład:
builder.setPositiveButton("Launch missile", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something like...
launchMissile();
}
});
dzieje
Istnieje wiele więcej odmian dialogowych, które można zrobić. Aby uzyskać pomoc, zapoznaj się z documentation.
Ponieważ tylko trzy przyciski są obsługiwane w AlertDialog
, tutaj jest przykład okna dialogowego z listą.

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();
}
}
Zobacz this answer podobnych przykładów radiowej listy przycisku i listy wyboru.
Uwagi
- używaj sznurka zasobów zamiast ciężko kodowane ciągi.
- Możesz zawinąć wszystko w klasie, która rozszerza się o
DialogFragment
, co ułatwia ponowne użycie okna dialogowego. (Patrz this o pomoc.)
Przykłady te wykorzystywane biblioteki wsparcia wspierać wersje przed API 11. Zatem import powinien być
import android.support.v7.app.AlertDialog;
pominąłem metodę onCreate
w przykładach powyżej dla zwięzłości. Tam nie było nic specjalnego.
Zobacz także
Które zobaczyć trzeba przejść do okna? –
@Eduardo Lion, Zakładam, że odnosisz się do 'widoku' w' showAlertDialogButtonClicked (View view) '. To jest właśnie Button z metody 'onClick()' przycisku. Możesz to zignorować. Okno dialogowe w ogóle go nie używa. Okno dialogowe potrzebuje tylko kontekstu, który w tym przypadku był "tym", czyli działaniem. – Suragch