将活动用作对话框

时间:2013-11-12 16:34:00

标签: java android dialog

我想在我的Android应用程序中使用一个活动作为对话框。直到现在,我已经使用了AlertDialogs,但我想让我的应用更加流行。我对此做了很多研究,但找不到满意的答案。

我分别为java和xml文件创建了一个名为DialogActivity.javadialogactivty的新活动。

那么,如何在其他活动中将此活动称为对话框?

如何为此活动提供圆角矩形对话框形状? 提前谢谢!

4 个答案:

答案 0 :(得分:1)

来自official documentation

  

如果您想要自定义对话框,则可以将活动显示为   对话框而不是使用Dialog API。只需创建一个活动和   将其主题设置为清单元素中的Theme.Holo.Dialog

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

就是这样。活动现在显示在对话框窗口中而不是   全屏。

Theme.Dialog用于API 10或更低版本。

答案 1 :(得分:1)

您可以将对话框主题设置为活动为

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

并使用

 <activity android:theme="@android:style/Theme.Holo.Dialog" /> // api level 11 and above

在所需活动的清单中。

您需要使用startActivity(intent)

开始活动

答案 2 :(得分:0)

试试这个:

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

在清单中输入您需要的活动。

答案 3 :(得分:-1)

@ChinmayDabke要显示圆角,您需要使用xml创建一个新的shape并将其设置为背景可绘制对象。请确保还为您的活动设置透明度。有关此问题的更多详细信息,有许多最新主题可用-自您提出要求以来,我只是想快速答复此旧帖子!


我的错误-您不需要设置为“透明”-我的意思是说不设置标题栏!

示例:

res / drawable 文件夹内为圆形背景创建一个形状:

shape_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid
        android:color="@color/colorOfActivityHere"/>
    <corners
        android:radius="12dp" />
    <padding
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp" />

</shape>


然后将形状设置为活动的父级布局的背景:

layout_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_activity"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="6dp"
    android:background="@drawable/shape_background"
    android:orientation="vertical">

    ...

</LinearLayout>


在您的Activity.java中,不设置标题栏:

Activity.java

requestWindowFeature(Window.FEATURE_NO_TITLE);