1

我有一个名为MainActivity的活动,它具有一个按钮。单击该按钮时,我显示一个AlertDialog,其中包含一个名为ChildWindow.xml的自定义视图。该自定义视图具有多个文本框和一个OK按钮。点击OK按钮,我打电话给MainActivity的一个方法。我能够在这里访问ChildWindow作为如何关闭显示自定义视图的警报对话框

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

一旦用户点击OK按钮,我不得不关闭警告对话框,我能够做的view.getRootView().setVisibility(View.GONE);

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

这按预期工作:

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

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

回答

0

只是调用AlertDialog.dismiss()来实际关闭包含您的自定义视图的AlertDialog