0

我想在我的 android 应用程序中使用一个活动作为一个对话框。到目前为止,我已经使用过,AlertDialogs但我想让我的应用程序更花哨。我对此进行了大量研究,但找不到令人满意的答案。

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

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

如何给这个活动一个圆角矩形对话框形状?提前致谢!

4

4 回答 4

2

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

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

并使用

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

在清单中进行所需的活动。

您需要使用startActivity(intent)

于 2013-11-12T16:37:08.747 回答
1

官方文档

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

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

而已。该活动现在显示在对话框窗口中,而不是全屏显示。

用于Theme.DialogAPI 10 或更低版本。

于 2013-11-12T16:36:57.580 回答
0

尝试这个 :

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

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

于 2013-11-12T17:18:36.093 回答
-1

@ChinmayDabke 要使用圆角显示,您需要shape使用 xml 创建一个新的并将其设置为背景可绘制对象。确保还为您的活动设置透明度。有关这方面的更多详细信息,有许多可用的最新主题 - 我只是想快速回答这篇旧帖子,因为你已经问过了!


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

例子:

在res/drawable文件夹中为圆形背景创建一个 Shape :

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>


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

布局活动.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 中,不设置标题栏:

活动.java

requestWindowFeature(Window.FEATURE_NO_TITLE);
于 2019-02-27T13:41:41.773 回答