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

Android 如何关闭显示自定义视图的警报对话框,android,android-alertdialog,android-custom-view,Android,Android Alertdialog,Android Custom View,我有一个名为MainActivity的活动,它有一个按钮。单击该按钮,我将显示一个AlertDialog,其中包含一个名为ChildWindow.xml的自定义视图。该自定义视图有多个文本框和一个OK按钮。单击OK按钮,我正在调用MainActivity的一个方法。我可以访问此处的ChildWindow作为 view.getRootView().findViewById(R.id.txtFirstName); 一旦用户单击OK按钮,我就必须关闭警报对话框,我可以按照view.getRootVi

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

view.getRootView().findViewById(R.id.txtFirstName);
一旦用户单击OK按钮,我就必须关闭警报对话框,我可以按照
view.getRootView().setVisibility(view.GONE)的方式进行操作

我的问题是,即使我在上面的语句中关闭了ChildWindow,我仍然能够获得对下一行文本框的引用,这意味着AlertDialog已关闭,但ChildWindow仍然存在。以下是“确定”按钮的单击方式:

这与预期的效果一样:

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

我想我正在关闭警报对话框,但我没有从内存中销毁它。有人能告诉我这里缺少了什么吗?

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