2012-03-22 62 views
32

您好我正面臨ICS上的問題,比如dialogdismissed當我們點擊外部的dialog窗口時,由於這個問題我得到的問題就像我沒有得到用戶的任何確認。android 4.0當對話框窗口被觸摸時,對話框被取消

請幫忙。

+6

由於某些原因,從ICS開始ey將默認的'setCanceledOnTouchOutside()'設置爲'true'。這個改變似乎沒有記錄在任何地方(沒有意外)。只是澄清任何人閱讀。 – 2012-09-13 21:13:38

回答

55

從Android Developers站點檢查this method進行對話。

嘗試使用setCanceledOnTouchOutside(布爾取消)方法並傳遞布爾值以在對話框窗口外部觸摸時啓用/禁用對話框行爲。

而且經過這些鏈接:

Android click event outside a dialog

How to cancel an Dialog themed like Activity when touched outside the window?

我希望這回答了你的問題。

+0

感謝它的工作,這些鏈接也是有用的。 – nishi 2012-03-22 20:14:20

+0

默認應該是false,這給我的用戶造成了很多問題。 – Arad 2012-10-16 19:47:40

12

您可以使用

dialog.setCancelable(true/false); 

OR

dialog.setCanceledOnTouchOutside(true/false); 

對於Android的最新vesrions;

它將禁用outSideTouching事件。

+1

是的,我們可以但是這將禁用取消對話框上的後退按鍵..很多時候你不想讓你的對話取消時被觸摸外面,但你想處理後退鍵按下事件的對話.. – nishi 2014-01-22 07:47:43

+0

是的,你是正確的@nishi。所以我編輯了我的答案並添加了一個新選項setCancelOnTouchOutSide(T/F)事件:P – Amt87 2014-01-22 10:51:21

0
dialog.setCancelable(false) 

對話框不能取消時,感動之外但能夠到取消的時候不能取消摸出側BACK

dialog.setCanceledOnTouchOutside(false) 

對話框當按下BACK