我有一个名为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();
我想我正在关闭警报对话框,但我并没有将其从内存中摧毁。有人能指出我在这里缺少什么吗?
答案 0 :(得分:0)
只需调用AlertDialog.dismiss()即可实际关闭包含自定义视图的AlertDialog