当触摸对话框窗口之外时,Android 4.0的对话框会被取消。

35

你好,我在ICS上遇到问题,例如当我们在对话框窗口外单击时,对话框会被关闭(dismissed),这导致我无法从用户那里获得任何确认信息。

请帮忙解决问题。


6
从ICS版本开始,由于某种原因,默认的 setCanceledOnTouchOutside() 是被设置成了 true。这个更改好像没有在任何地方记录(不出所料)。这里只是为了澄清,供读者参考。 - Tony Chan
3个回答

66

默认值应该为false,这给我的用户带来了很多问题。 - Arad

15

你可以使用

dialog.setCancelable(true/false);
dialog.setCanceledOnTouchOutside(true/false);

针对最新版本的安卓系统;

它将禁用外部触摸事件。


1
是的,我们可以这样做,但这将禁用按返回键取消对话框。很多时候您不希望您的对话框在外部被触摸时被取消,但您希望处理对话框的返回键事件。 - nishi
是的,@nishi,你说得对。所以我编辑了我的答案,并添加了一个新选项setCancelOnTouchOutSide(T/F)事件:P - Amt87

13
dialog.setCancelable(false)

触摸屏幕外部或按下返回键时,无法取消对话框

dialog.setCanceledOnTouchOutside(false)

点击屏幕外部无法取消对话框,但是可以通过按下 返回 键来取消对话框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接