如何将 Activity 显示为对话框而不是新屏幕?

How to show an Activity as a dialog box rather than a new screen?

我对此很陌生。我做了2个活动。从 Activity A 我希望能够打开 Activity B 作为对话框 window 而不是它接管屏幕。我想出了如何制作一个对话框,但它的功能似乎需要编程到同一个 Activity Java 文件中。我想将我的代码分开。

有没有办法显示包含另一个 activity 及其所有编码功能的对话框 window?

从清单中设置 activity B 主题。

<activity android:theme="@android:style/Theme.Dialog" />

是的,您必须在清单中进行一些更改。

你可以参考这个,因为你的问题已经被问过了:

android activity as a dialog

在您的 AndroidManifest 清单文件中定义您的 activity,如下所示:

<activity android:theme="@android:style/Theme.Dialog"
          android:excludeFromRecents="true" />

并且如果您希望当用户在其外部单击时您的 activity 不可取消,只需在 onCreate 方法内的 Activity.Java 文件中添加以下行:

this.setFinishOnTouchOutside(false);

为 activity 尝试以下操作: 在activity中调用

设置主题

setTheme(R.style.AppTheme_DialogTheme)

并创建相应的样式:

<style name="AppTheme.DialogTheme" 
parent="Base.Theme.AppCompat.Light.Dialog.FixedSize">
    <!-- removing the dialog's action bar -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="windowFixedHeightMajor">400dp</item>
    <item name="windowFixedHeightMinor">400dp</item>
</style>