如何关闭显示自定义视图的警报对话框

时间:2012-03-20 05:24:29

标签: android alertdialog android-custom-view android-alertdialog

我有一个名为MainActivity的活动,它有一个按钮。单击该按钮,我将显示一个AlertDialog,其中包含一个名为ChildWindow.xml的自定义视图。该自定义视图具有多个文本框和一个“确定”按钮。单击确定按钮,我调用MainActivity方法。我可以在这里访问ChildWindow

view.getRootView().findViewById(R.id.txtFirstName);

用户点击“确定”按钮后,我必须关闭我能够执行的警告对话框view.getRootView().setVisibility(View.GONE);

我的问题是即使我已经在上面的语句中关闭了ChildWindow,我能够在下一行中引用文本框,这意味着AlertDialog已关闭但子窗口仍然存在。这就是OK按钮单击的样子:

这可以按预期工作:

    EditText tb = (EditText) view.getRootView().findViewById(R.id.txtFirstName);
    Toast toast = Toast.makeText(getApplicationContext(), tb.getText(), Toast.LENGTH_LONG);
    toast.show();
    view.getRootView().setVisibility(View.GONE);

这应该不起作用,因为我关闭了警告对话框,然后获取文本框的引用,但这也有效。

    view.getRootView().setVisibility(View.GONE);
    EditText tb = (EditText) view.getRootView().findViewById(R.id.txtFirstName);
    Toast toast = Toast.makeText(getApplicationContext(), tb.getText(), Toast.LENGTH_LONG);
    toast.show();

我想我正在关闭警报对话框,但我并没有将其从内存中摧毁。有人能指出我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

只需调用AlertDialog.dismiss()即可实际关闭包含自定义视图的AlertDialog