【问题标题】:How to get the default alert Dialog on android have a black theme如何在android上获取默认警报对话框有一个黑色主题
【发布时间】:2013-10-31 13:52:36
【问题描述】:

如何在 android 中获得黑色主题对话框,如 android 指南 http://developer.android.com/guide/topics/ui/dialogs.html 中所示

我拍了一张屏幕截图。每当我使用警报对话框时,我都会得到左侧的对话框,我想要右侧的对话框。

【问题讨论】:

  • 试试这个但不确定。转到android项目-->布局-->xml文件-->图形布局-->更改主题(Theme.Black)

标签: android android-layout dialog android-alertdialog


【解决方案1】:

从 API 11 开始很简单:

AlertDialog.Builder alert = new AlertDialog.Builder(context, AlertDialog.THEME_DEVICE_DEFAULT_DARK);

THEME_DEVICE_DEFAULT_DARK 字段是在 API 14 中添加的,因此如果您在此之前定位,只需使用数值,因此:

AlertDialog.Builder alert = new AlertDialog.Builder(context, 4);

您可以使用的不同常量及其值显示在here。不过,在 API 14 之前,您仍然会收到白色警报。

----------------------------------- -----------------更新------------------------- -------------------------------------------

AlertDialog.THEME_DEVICE_DEFAULT_DARK 已折旧,

以下是更新后的代码:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert);

你可以选择不同的主题来代替这个android.R.style.Theme_DeviceDefault_Light_Dialog_Alert

【讨论】:

  • THEME_DEVICE_DEFAULT_DARK...如何解决?
  • 这个主题对我有用,得到一个轻快的主题:Theme_Material_Light_Dialog_Alert
  • 根据你的链接(和我的实验),黑暗的现在是android.R.style.Theme_DeviceDefault_Dialog_Alertdeveloper.android.com/reference/android/app/…
【解决方案2】:

res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="default_activity_theme" parent="@android:style/Theme.Holo"/>
</resources>

AndroidManifest.xml

<activity android:name=".ActivityMain"
          android:theme="@style/default_activity_theme"/>

【讨论】:

  • 哦,所以它只是为特定活动使用主题!太棒了!
  • 有一种简单而正确的方法可以做到这一点,请参阅下面的答案。
  • .setIconAttribute(android.R.attr.alertDialogIcon)
【解决方案3】:

如果您不想更改 Activity 的主题,可以扩展 AlertDialog 并在其构造函数中提供 Theme.HoloAlertDialog(Context context, int theme)

【讨论】:

    【解决方案4】:

    如果使用DialogFragment实现自定义对话框,在onCreate()方法中设置主题如下:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState)
        setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Dialog)
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 2017-03-09
      • 2022-10-06
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      相关资源
      最近更新 更多