【问题标题】:Create a dialog as an actvity?创建一个对话框作为一个活动?
【发布时间】:2014-04-20 23:29:33
【问题描述】:

在我的应用程序中,我在简单对话框上创建作为活动。 使用清单文件将活动更改为对话框,例如

 <activity
        android:name=".Dialog_actvity"
        android:excludeFromRecents="true"
        android:launchMode="singleInstance"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.Dialog" >
    </activity>

这样,它可以正确显示对话框,但无法在对话框活动中设置 setcancelable(false)。我不知道如何设置。有人知道请帮我解决这个问题。

【问题讨论】:

  • 你需要自己实现这个行为。像 onbackpress 处理或触摸处理来关闭 Activity..
  • 与您的问题无关,但您为什么设置launchMode="singleInstance"?这可能是不正确的。
  • @DavidWasser 我认为该属性是活动独有的。
  • @Torcellite 我知道该属性的用途和作用。我怀疑 OP 真的需要这个,这就是我问这个问题的原因。

标签: android android-dialog


【解决方案1】:

因为它是Activity 而不是Dialog,所以您无权访问setcancelable(false)。 您可以通过覆盖活动中的onBackPressed() 来禁用后退按钮。

@Override
public void onBackPressed() {
}

请记住,如果您在某些情况下忘记完成对话活动,这并不危险,而且它对用户并不友好。

【讨论】:

    【解决方案2】:

    除了FabiF的回答..如果在Activity之外点击时Activity也不应该自动关闭,请使用:

    @Override
    public boolean onTouchEvent(MotionEvent event) 
    {
        return true;
    }
    

    这不会妨碍例如您的按钮不会收到点击事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多