阻止Dialog主题活动关闭onTouchOutside和onBackPressed

时间:2013-09-22 21:40:31

标签: android android-activity dialog ontouchevent

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

当有用户onTouchOutside或按下后,有什么好方法可以防止活动主题对话框被取消?

3 个答案:

答案 0 :(得分:2)

你实际拥有的是一个活动(即使它看起来像一个对话框),因此如果你想在点击后台活动时保持它打开,你应该从你的活动中调用setFinishOnTouchOutside(false)

  Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_yoptions);
    this.setFinishOnTouchOutside(false);
}

编辑:这仅适用于Android API级别11或更高版本

并覆盖没有super()的onBackPressed()方法,以防止按下后退按钮。

我希望这会有所帮助~~

答案 1 :(得分: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)

答案 2 :(得分:0)

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

SetCancelablesetCanceledonTouchOutside