我有一个以对话框为主题的活动(是的,它必须是活动,而不是对话框片段或任何其他类型的对话框,因为在此活动中使用了库)无论如何,当我的 api 向我的客户端发送响应时,如果用户没有默认图像此活动主题对话框弹出,我希望在用户上传照片之前无法取消此活动主题对话框。目前,活动主题对话框很小,只要用户在活动对话框之外单击它就会取消,并且具有透明背景。
那么,当用户 onTouchOutside 或回击时,有什么好的方法可以防止以活动为主题的对话框被取消?
我有一个以对话框为主题的活动(是的,它必须是活动,而不是对话框片段或任何其他类型的对话框,因为在此活动中使用了库)无论如何,当我的 api 向我的客户端发送响应时,如果用户没有默认图像此活动主题对话框弹出,我希望在用户上传照片之前无法取消此活动主题对话框。目前,活动主题对话框很小,只要用户在活动对话框之外单击它就会取消,并且具有透明背景。
那么,当用户 onTouchOutside 或回击时,有什么好的方法可以防止以活动为主题的对话框被取消?
您实际上拥有的是一个 Activity(即使它看起来像一个对话框),因此setFinishOnTouchOutside(false)
如果您想在单击背景 Activity 时保持它处于打开状态,则应该从您的 Activity 中调用。
Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yoptions);
this.setFinishOnTouchOutside(false);
}
编辑:这仅适用于 android API 级别 11 或更高版本
并在没有 super() 的情况下覆盖 onBackPressed() 方法以防止按下后退按钮。
我希望这会有所帮助~~
有两种方式。但它在 api 11 之后有效。
使用主题。Android 为其提供了主题的属性。(http://developer.android.com/reference/android/R.attr.html#windowCloseOnTouchOutside)
使用代码。您也可以从代码中设置此属性。( http://developer.android.com/reference/android/app/Activity.html#setFinishOnTouchOutside(boolean)
为对话框的这两种方法设置 false