2010-07-24 5 views
8

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

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

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

ab.show(); 

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

ответ

4

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

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

11

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

1
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(); 
Смежные вопросы