Ответ 1
Одна кнопка
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();
}
}
Две кнопки
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();
}
}
Три кнопки
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();
}
}
Если текст кнопки слишком длинный, чтобы все поместилось по горизонтали, тогда оно автоматически будет выложено в вертикальном столбце из трех кнопок.
Обращение с кликами по кнопкам
В приведенных выше примерах OnClickListener
был null
. Вы можете заменить null
на прослушиватель, чтобы что-то сделать, когда пользователь нажал кнопку. Например:
builder.setPositiveButton("Launch missile", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something like...
launchMissile();
}
});
Включение
Существует много вариантов диалогов, которые вы можете сделать. См. Документацию для справки.
Поскольку в AlertDialog
поддерживается только три кнопки, вот пример диалога со списком.
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();
}
}
См. этот ответ для похожих примеров списка переключателей и списка флажков.
Примечания
- Используйте строковые ресурсы, а не жестко закодированные строки.
- Вы можете обернуть все в класс, который расширяет
DialogFragment
для легкого повторного использования диалога. (См. этот для справки.) -
В этих примерах использовалась библиотека поддержки для поддержки версий до API 11. Таким образом, импорт должен быть
import android.support.v7.app.AlertDialog;
-
Я пропустил метод
onCreate
в приведенных выше примерах для краткости. Там ничего особенного не было.