2012-03-22 68 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