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