我一直在環顧四周,找不到任何東西,所以我不知道它是否可能,但是有沒有辦法對alertdialogs進行關閉操作?AlertDialog OnClose事件Android
在我的情況下,我的背景UI暫停,而對話框是暫停屏幕。如果你點擊對話框中的按鈕,它會運行onClick的東西,所以我有它在那裏取消暫停,但如果他們點擊對話框關閉對話框但不運行onClick。無論如何,當他們點擊到一邊時,有什麼東西可以運行?謝謝!
我一直在環顧四周,找不到任何東西,所以我不知道它是否可能,但是有沒有辦法對alertdialogs進行關閉操作?AlertDialog OnClose事件Android
在我的情況下,我的背景UI暫停,而對話框是暫停屏幕。如果你點擊對話框中的按鈕,它會運行onClick的東西,所以我有它在那裏取消暫停,但如果他們點擊對話框關閉對話框但不運行onClick。無論如何,當他們點擊到一邊時,有什麼東西可以運行?謝謝!
要做到這一點的唯一方法是不使用AlertDialog.Builder,而是創建一個PopupWindow子類。
一個很好的例子可以在這裏找到在線37: https://github.com/lorensiuswlt/NewQuickAction/blob/master/src/net/londatiga/android/PopupWindows.java
您可以設置onDismissListener()
以在對話框消失時收聽。 Docs。
您可以使用setCanceledOnTouchOutside(false)來迫使用戶點擊取消按鈕。 您也可以(如果您使用的是DialogFragment)覆蓋onDetach()方法。 最後你可以設置一個解僱監聽器。
您可以使用onDismissListener()
,但它是在更高級的API中引入的,因此不會與較舊的API兼容。您可以改用onCancel()
。
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("My Titile");
alertDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
//your logic
}
});
是,但'是唯一在API 17 http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setOnDismissListener(android.content介紹AlertDialog.Builder'。 DialogInterface.OnDismissListener) – SZH