Android 如何在自定义主题中设置对话框样式?

Android 如何在自定义主题中设置对话框样式?,android,Android,我尝试了很多方法,但无法从xml更改AlertDialog样式 我的结果是为扩展和覆盖默认值的对话框定义一个XML样式,然后将其绑定到我的主题中,这样所有alertDialogs看起来都一样 我试过: <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. -->

我尝试了很多方法,但无法从xml更改AlertDialog样式

我的结果是为扩展和覆盖默认值的对话框定义一个XML样式,然后将其绑定到我的主题中,这样所有alertDialogs看起来都一样

我试过:

<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:alertDialogStyle">@style/pippo</item>
</style>
<style name="pippo" parent="@android:style/Theme.Dialog">
    <item name="android:bottomBright">@android:color/holo_orange_dark</item>
    <item name="android:bottomDark">@android:color/holo_orange_dark</item>
    <item name="android:bottomMedium">@android:color/holo_orange_dark</item>
    <item name="android:centerBright">@android:color/holo_orange_dark</item>
    <item name="android:centerDark">@android:color/holo_orange_dark</item>
    <item name="android:centerMedium">@android:color/holo_orange_dark</item>
    <item name="android:fullBright">@android:color/holo_orange_dark</item>
    <item name="android:fullDark">@android:color/holo_orange_dark</item>
    <item name="android:topBright">@android:color/holo_blue_dark</item>
    <item name="android:topDark">@android:color/holo_blue_dark</item>
</style>

@风格/皮波
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_橙色_深色
@android:color/holo_blue_深色
@android:color/holo_blue_深色
然后我把清单中的“AppTheme”作为活动主题,但我仍然可以看到正常的alertdialogs


我哪里做错了?

您可以尝试以下方法来应用所需的样式:

AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style. pippo));

在AlertDialog中添加此样式的地方发布代码。我不是通过java添加样式,我想通过覆盖默认样式来设置对话框样式。是的,但这不是我想要的。。我希望只使用xml来实现这个结果,我不认为这是可能的。但是,您可以创建一个自定义对话框类来扩展AlertDialog,并在构造函数上应用该样式。然后,调用CustomDialog而不是AlertDialog。