0

我有一个以对话框为主题的活动(是的,它必须是活动,而不是对话框片段或任何其他类型的对话框,因为在此活动中使用了库)无论如何,当我的 api 向我的客户端发送响应时,如果用户没有默认图像此活动主题对话框弹出,我希望在用户上传照片之前无法取消此活动主题对话框。目前,活动主题对话框很小,只要用户在活动对话框之外单击它就会取消,并且具有透明背景。

那么,当用户 onTouchOutside 或回击时,有什么好的方法可以防止以活动为主题的对话框被取消?

4

3 回答 3

2

您实际上拥有的是一个 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() 方法以防止按下后退按钮。

我希望这会有所帮助~~

于 2013-12-19T11:03:58.470 回答
1

有两种方式。但它在 api 11 之后有效。

  1. 使用主题。Android 为其提供了主题的属性。(http://developer.android.com/reference/android/R.attr.html#windowCloseOnTouchOutside

  2. 使用代码。您也可以从代码中设置此属性。( http://developer.android.com/reference/android/app/Activity.html#setFinishOnTouchOutside(boolean)

于 2013-09-22T21:57:08.080 回答
0

为对话框的这两种方法设置 false

SetCancelablesetCanceledonTouchOutside

于 2013-09-22T23:13:25.890 回答