в каком контексте я должен использовать AlertDialog.Builder? - PullRequest
9 голосов
/ 24 июля 2010

Может ли кто-нибудь объяснить, в каком контексте мне следует использовать класс AlertDialog.Builder? Я новичок в разработке приложений для Android и, честно говоря, не понимаю, какой контекст использовать, когда?

Скажем, я хочу создать объект для класса AlertDialog.Builder -

AlertDialog.Builder ab = new AlertDialog.Builder();
ab.setMessage("Test");

ab.show();

В каком контексте я должен использовать это? Отличается ли это, если я использую диалог оповещения onCreate или OnClickListener или в обработчике любого такого события?

Ответы [ 3 ]

13 голосов
/ 24 июля 2010

Вы должны использовать контекст действия, из которого он выполняется. Другими словами, просто используйте YourNameOfActivity.this в качестве контекста.

4 голосов
/ 24 июля 2010

В первой версии моего приложения я допустил ошибку, не используя onCreateDialog, а вместо этого построил и показал диалоги самостоятельно. Если вы делаете это самостоятельно, вы должны позаботиться о таких вещах, как закрытие диалогового окна до завершения действия (), иначе окно утечет.

Я бы переопределил onCreateDialog в вашей активности и возвратил ab.create () (не show ()). Затем onCreateDialog будет обрабатывать отображение диалогового окна, и вам просто нужно будет вызвать showDialog (id).

1 голос
/ 02 декабря 2011
AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setMessage("Test")
  .show;

(или) если вы хотите (да, нет) кнопка означает использовать это

AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setMessage("Are you sure you want to exit?")
  .setPositiveButton("Yes", dialogClickListener)
  .setNegativeButton("No", dialogClickListener)
  .show();
...