gpt4 book ai didi

android - 使应用程序警报对话框看起来像 Play Services Location Enable 对话框?

转载 作者:行者123 更新时间:2023-11-30 02:16:14 25 4
gpt4 key购买 nike

我转而使用 Google Play 服务 SettingsApi 以允许用户在需要时从应用程序内部打开位置。但是,我希望我的应用程序中有所有类似的警报,例如蓝牙,看起来像播放服务显示的位置对话框。

有人知道怎么做吗?我尝试在我的 AlertDialogs 上设置不同的主题,但我无法让它与跨设备的 Play Services 对话框的主题相匹配,例如如果它在 Lollipop 设备上匹配,则在 KitKat 设备上不匹配,反之亦然。

例如S4 上的 Play Services 7.0.0 位置对话框如下所示:

Play Services Dialog

标准的警告对话框如下所示:

Custom dialog

警告对话框的代码是:

new AlertDialog.Builder(this)
.setTitle("Alert Title")
.setMessage("Alert Message")
.setPositiveButton("Enabled", null)
.setNegativeButton("Cancel", null)
.create().show();

如何使我的自定义对话框看起来与 Play 服务对话框相似?

最佳答案

Android 资源正是为此类任务而设计的——帮助您根据您的环境选择最合适的资源,例如设备类型、用户语言、平台版本等。如果您使用资源文件来指定您的对话框样式,您无需编写自己的代码来自行检查平台版本。

首先,在res/values目录下创建一个默认的style.xml来处理Honeycomb之前的Android版本,使用Theme.Holo.Dialog主题:

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

对于介于 Honeycomb 和 KitKat 之间的 Android 版本,您需要 Theme.Holo.Panel。此 styles.xml 应位于 res/values-v11:

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

最后,res/values-v21 下的 Materialized 样式文件,适用于 Lollipop 和更高的 Android 版本:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyThemeSelector" parent="android:Theme.Material.Light.Panel">
</style>
</resources>

之后,您只需在创建AlertDialog 时将MyThemeSelector 指定为您的对话框样式。快乐黑客!

关于android - 使应用程序警报对话框看起来像 Play Services Location Enable 对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29308676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com