каком контексте я должен использовать AlertDialog.В Builder?

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

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

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

ab.show();

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

3 ответов


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

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


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


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();