当前位置: 首页 > 知识库问答 >
问题:

如何使用AppCompat22.1及以上版本中的新AlertDialog及其样式

尹钱青
2023-03-14

我正在尝试从默认的androidAlertDialog迁移到AppCompat-22.1中包含的新的android。到目前为止,我只需要导入android.support.v7.app.AlertDialog包就可以使用它。

但我该怎么做呢?例如,更改正/负按钮颜色、标题颜色、消息颜色和背景颜色?

共有1个答案

解阳泽
2023-03-14

创建AlertDialog时,可以设置要使用的主题。

示例-创建对话框

AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();

xml-自定义样式

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <!-- Used for the buttons -->
    <item name="colorAccent">#FFC107</item>
    <!-- Used for the title and text -->
    <item name="android:textColorPrimary">#FFFFFF</item>
    <!-- Used for the background -->
    <item name="android:background">#4CAF50</item>
</style>
<style name="MyTitleTextStyle">
    <item name="android:textColor">#FFEB3B</item>
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    ...
    <item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
 类似资料:
  • 正如我的IDE指出的那样,方法现在已经被弃用。 无论是在官方文档中还是在Github变更日志中,我都没有找到任何关于这种反对的参考。 这条捷径的新替代方案或变通方法是什么?

  • 例如,我一直在搜索什么时候我可以像Android10及以上版本的权限要求一样定制我的AlertDialog,所有选项都在中间和中间对齐。 任何帮助都将不胜感激。

  • 我有一个查询,它可以在MySQL8.0上运行,但不能在下面的版本上运行,比如MySQL5.5。当我在web服务器上遇到这个错误时,如何使其兼容:#1064-您的SQL语法中有一个错误;查看与您的MySQL服务器版本相对应的手册,以了解第11行“(partition by pid order by Age”附近使用的正确语法 https://dbfiddle.uk/?rdbms=mysql_8.0&

  • 我想开发一个部署目标为iOS 6.0的应用程序。如果我只使用Swift,它会工作吗?还是我也需要编写Objective-C代码?

  • 问题内容: 我正在开发需要均衡器的android媒体播放器。但是,均衡器仅在Gingerbread及更高版本上可用,但是cyanogenmod 6修改了audioflinger以用作均衡器,因此我想检测OS版本。 问题答案: 您可以读取属性并与之匹配: 在我的设备上是。

  • 我正在尝试在我的应用程序中实现通话录音,但由于受限权限CAPTURE_AUDIO_OUTPUT(只能授予系统应用程序),我无法录制其他人的音频。我在Play store Cube ACR上找到了一个应用程序,可以清楚地录制双方的音频。如果谷歌禁用了通话录音,那么它如何录制通话。有什么解决方法可以记录我缺失的通话吗?