退出Theme.Dialog后如何不显示父活动

时间:2013-09-30 18:00:03

标签: android dialog android-activity

我想创建一个显示对话框的简单活动。 我有清单:

android:theme="@android:style/Theme.Dialog

并在活动的onCreate()方法中:

    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.activity_dialog, (ViewGroup) findViewById(R.id.layout), false);

    AlertDialog.Builder builder = new AlertDialog.Builder(this)
    .setView(layout);

    AlertDialog alertDialog = builder.create();
    alertDialog.show();

当我启动应用程序时,它会正确显示对话框,但是当我按下后退按钮键时,它会向我显示图像中的父活动

enter image description here

我想要实现的只是显示对话框,当用户退出对话框时,应用程序退出。之后我不想在中间看到这个nosense弹出窗口。 我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我想要实现的只是显示对话框,当用户退出对话框时,应用程序退出。之后我不想在中间看到这个nosense弹出窗口。我怎么能这样做?

为此,您可以在OnDismissListener()上设置AlertDialog,然后在其中致电finish()以关闭Activity内的onDismiss()。你刚设置

Dialog Interface OnDismiss

但是,您在manifest.xml中所做的是将Activity本身设为Dialog theme。这意味着您不需要AlertDialog。您只需在R.layout.activity_dialog.xml中的setContentView()的{​​{1}}中设置Activity就可以在不需要onCreate()的情况下为您提供相同类型的效果可以在您AlertDialog的{​​{1}}以及您需要的任何其他地方致电finish()