我应该在什么上下文中使用AlertDialog.Builder?

pav*_*red 9 android android-alertdialog

任何人都可以解释我应该使用AlertDialog.Builder类的上下文?我是Android应用程序开发的新手,我坦率地不明白使用哪个上下文?

说,我想为AlertDialog.Builder类创建一个对象 -

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

ab.show();
Run Code Online (Sandbox Code Playgroud)

我应该在什么情况下使用它?是否不同,如果我使用的警告对话框中onCreateOnClickListener或在任何此类事件的处理程序?

Cri*_*ian 14

您应该使用它执行的Activity的上下文.换句话说,只需YourNameOfActivity.this用作上下文.


Bra*_*rke 4

在我的应用程序的第一个版本中,我犯了一个错误,没有使用 onCreateDialog,而是自己构建并显示对话框。如果您自己执行此操作,则必须在活动完成()之前处理诸如关闭对话框之类的事情,否则窗口将泄漏。

我会在您的活动中重写 onCreateDialog 并返回 ab.create() (而不是 show())。然后 onCreateDialog 将处理显示对话框,您只需调用 showDialog(id) 即可。