如何在Android中将我的活动显示为对话框?

时间:2012-01-05 05:55:26

标签: android android-activity dialog

我正在开发我的第一个Android应用程序,并且正在尝试设计我的活动。最终,我希望我的活动与对话框看起来一样。我使用Theme.Dialog中的以下代码将AndroidManifest.xml样式的所有活动都给了{/ 1}}:

<application
    android:icon="@drawable/group"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Dialog">
</application>

这使我的活动成为了#34;浮动&#34;外观和对话框的边框,但不是样式标题。标题与一般对话框背景具有相同的颜色和外观,而不是&#34;标题&#34;背景和边界,如真实&#34;对话。请注意,在两个示例中,标题下面都有一个漂亮的边框,而在第二个示例中,它有一个渐变背景。

有没有办法确保我的活动标题以某种方式继承系统对话框标题,以便有效地复制我的活动对话框的外观 - 除了边框和&#34;浮动&#34;它带有Theme.Dialog样式?

请注意,我不想将我的活动称为另一个对话框,我只是希望它像dilaog一样 LOOK ,即使它是在响应中加载的按照我的清单的意图过滤器的意图。

Dialog Example 1

Dialog Example 2

ADD:我可以通过某种方式获得我的活动,当它在onCreate()中旋转时,调用某种方法将自己变成实际的对话框吗?请记住,活动仍然需要能够响应系统中的意图。

3 个答案:

答案 0 :(得分:4)

可以通过在styles.xml

中将其指定为父对话来自定义Dialog主题
<resources>
<style name="MyDialogTheme" parent="android:Theme.Dialog">
            <item name="android:background">#ffdddddd</item>
</style>
</resources>

如果为自定义对话框样式和布局(在main.xml文件中的布局标题下添加android:background="#ffffffff")的背景提供不同的颜色,则会给出一个类似于外观的系统对话框。

希望这会有所帮助..

错过提及: 请参阅清单中的自定义主题,如下所示:

android:theme="@style/MyDialogTheme"

答案 1 :(得分:2)

你可以这样做..

为对话框创建一个布局,并按如下所示进行设置。

Dialog mDialog = new Dialog(MainScreen.this,android.R.style.Theme_Translucent_NoTitleBar);

mDialog .requestWindowFeature(Window.FEATURE_NO_TITLE);

mDialog .setContentView(R.layout.dialoglayout);
mDialog .show();

答案 2 :(得分:2)

在决定查看我想要做的 后,我找到了一种不同的方法,而不是如何做。我重新提出了我的问题,寻找方法思路,而不是实施思路here。 GalDude33帮助我弄清楚如何达到我想要的效果。他的回答就是这个Q的答案。