Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 防止以对话框为主题的活动在外部和反压时关闭_Android_Android Activity_Dialog_Touch Event - Fatal编程技术网

Android 防止以对话框为主题的活动在外部和反压时关闭

Android 防止以对话框为主题的活动在外部和反压时关闭,android,android-activity,dialog,touch-event,Android,Android Activity,Dialog,Touch Event,我有一个以对话为主题的活动(是的,它必须是活动,而不是对话片段或任何其他类型的对话,因为库在这个活动中使用)无论如何,当我的api向我的客户端发送响应时,如果用户没有默认图像,则会弹出此活动主题对话框,我希望在用户上传照片之前,无法取消此活动主题对话框。目前,以活动为主题的对话框很小,只要用户在其取消的活动对话框外单击,就会有一个透明的背景 那么,有什么好方法可以防止用户在触摸外部或按下返回键时取消以活动为主题的对话框呢?有两种方法。但它在api 11之后工作 使用主题。 Android为其提供

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


那么,有什么好方法可以防止用户在触摸外部或按下返回键时取消以活动为主题的对话框呢?

有两种方法。但它在api 11之后工作

  • 使用主题。 Android为其提供了主题属性。 ()

  • 使用代码。 您还可以从代码中设置此属性。 (


  • 有两种方法,但它在api 11之后工作

  • 使用主题。 Android为其提供了主题属性。 ()

  • 使用代码。 您还可以从代码中设置此属性。 (


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


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


    而且

    您实际拥有的是一个活动(即使它看起来像一个对话框),因此如果您希望在单击后台活动时保持活动的打开状态,您应该从活动中调用
    setfinishontouchout(false)

      Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_yoptions);
        this.setFinishOnTouchOutside(false);
    }
    
    编辑:这仅适用于android API 11级或更高级别

    并在不使用super()的情况下重写onBackPressed()方法,以防止按下后退按钮


    我希望这对您有所帮助~~

    您实际拥有的是一个活动(即使它看起来像一个对话框),因此,如果您希望在单击后台活动时保持活动的打开状态,您应该从活动中调用
    setfinishontouchout(false)

      Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_yoptions);
        this.setFinishOnTouchOutside(false);
    }
    
    编辑:这仅适用于android API 11级或更高级别

    并在不使用super()的情况下重写onBackPressed()方法,以防止按下后退按钮


    我希望这有助于~~

    两者都不起作用。如果有问题,我在活动中使用的主题是Sherlock.Dialog.Light,两者都不起作用。如果有问题,我在活动中使用的主题是Sherlock.Dialog.Light