为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改AlertDialog的主题

如何更改AlertDialog的主题

潇湘沐 2019-07-01 15:57:36
如何更改AlertDialog的主题我想知道是否有人能帮我。我正在尝试创建一个自定义AlertDialog。为了做到这一点,我在styes.xml中添加了以下代码行<resources>  <style name="CustomAlertDialog" parent="android:Theme.Dialog.Alert">   <item name="android:windowBackground">@drawable/color_panel_background</item>  </style></resources>png位于可绘制文件夹中。这也可以在AndroidSDKRES文件夹中找到。以下是主要活动。package com.customdialog;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.DialogInterface;import android.os.Bundle;public class CustomDialog extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         this.setTheme(R.style.CustomAlertDialog);         AlertDialog.Builder builder = new AlertDialog.Builder(this);         builder.setMessage("HELLO!");         builder .setCancelable(false)           .setPositiveButton("Yes", new DialogInterface.OnClickListener() {            public void onClick(DialogInterface dialog, int id) {                //MyActivity.this.finish();            }        })        .setNegativeButton("No", new DialogInterface.OnClickListener() {            public void onClick(DialogInterface dialog, int id) {                //dialog.cancel();            }        });         AlertDialog alertdialog = builder.create();         alertdialog.show();     }}为了将主题应用于AlertDialog,我必须将主题设置为当前上下文。然而,我似乎无法让应用程序显示定制的AlertDialog。有人能帮我解决这个问题吗?
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我写了一个文章在我的博客中,介绍如何用XML样式文件配置AlertDialog的布局。主要问题是,对于不同的布局参数,需要不同的样式定义。下面是一个基于HoloLight平台版本19的AlertDialog样式的样板,用于样式文件,它应该涵盖一系列标准布局方面,如文本大小和背景色。

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    ...
    <item name="android:alertDialogTheme">@style/MyAlertDialogTheme</item>
    <item name="android:alertDialogStyle">@style/MyAlertDialogStyle</item>
    ...</style><style name="MyBorderlessButton">
    <!-- Set background drawable and text size of the buttons here -->
    <item name="android:background">...</item>
    <item name="android:textSize">...</item></style><style name="MyButtonBar">
    <!-- Define a background for the button bar and a divider between the buttons here -->
    <item name="android:divider">....</item>
    <item name="android:dividerPadding">...</item>
    <item name="android:showDividers">...</item>
    <item name="android:background">...</item></style><style name="MyAlertDialogTitle">
    <item name="android:maxLines">1</item>
    <item name="android:scrollHorizontally">true</item></style><style name="MyAlertTextAppearance">
    <!-- Set text size and color of title and message here -->
    <item name="android:textSize"> ... </item>
    <item name="android:textColor">...</item></style><style name="MyAlertDialogTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowTitleStyle">@style/MyAlertDialogTitle</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:textAppearanceMedium">@style/MyAlertTextAppearance</item>
    <!-- If you don't want your own button bar style use            @android:style/Holo.Light.ButtonBar.AlertDialog
            and            ?android:attr/borderlessButtonStyle
         instead of @style/MyButtonBar and @style/MyBorderlessButton -->
    <item name="android:buttonBarStyle">@style/MyButtonBar</item>
    <item name="android:buttonBarButtonStyle">@style/MyBorderlessButton</item></style><style name="MyAlertDialogStyle">
    <!-- Define background colors of title, message, buttons, etc. here -->
    <item name="android:fullDark">...</item>
    <item name="android:topDark">...</item>
    <item name="android:centerDark">...</item>
    <item name="android:bottomDark">...</item>
    <item name="android:fullBright">...</item>
    <item name="android:topBright">...</item>
    <item name="android:centerBright">...</item>
    <item name="android:bottomBright">...</item>
    <item name="android:bottomMedium">...</item>
    <item name="android:centerMedium">...</item></style>


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 1398 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信