如何以编程方式获取父主题

2024-01-20

假设我在以下位置声明了以下自定义主题themes.xml:

<style name="Theme.Custom.Light" parent="@style/Theme.Sherlock.Light">
    <item name="android:actionBarTabStyle">@style/Widget.Custom.Light.ActionBar.TabView</item>
    <item name="android:actionBarTabTextStyle">@style/Widget.Custom.Light.ActionBar.TabText</item>
    <item name="android:actionMenuTextColor">@color/ab_item_text</item>
    <item name="android:actionMenuTextAppearance">@style/TextAppearance.Custom.Light.Widget.ActionBar.Menu</item>
</style>

从应用程序上下文中,我们可以得到Theme当前应用的类使用

Theme myTheme = appContext.getTheme();

而且,我们还可以使用以下方法获取主题的资源 id:

int themeResId = appContext.getApplicationInfo().theme;

我想要的是

从我的代码中,我想检查以编程方式这是我正在使用的主题的父主题,以便区分Sherlock, Sherlock.Light & Sherlock.Light.DarkActionBar.

在上面的示例中,我想知道我正在使用 Sherlock 主题的 Light 变体。

Note: 您可能想知道如果我在 xml 中声明了父级,为什么还需要检查它。原因是我处于一种我实际上不知道的特定情况,但这超出了这个问题的范围。


 Theme myTheme = appContext.getTheme();

您可以使用它的父类

 Theme myThemeParent = appContext.getTheme().getClass().getSuperclass();

并将其与Sherlock.getclass() 验证它是否是父级。其他比较也是如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式获取父主题 的相关文章

  • 将适配器设置为 ExpendableListView 类型不匹配

    当我尝试将适配器设置为 ExpendableListView 时 它需要 ListAdapter 但我想使用扩展 BaseExpandableListAdapter 的自定义 ExpandableListAdapter 这是我的 Expan
  • 从列表中删除项目会导致 LazyColumn 中显示错误

    我认为这是一个奇怪的情况 我正在显示一个列表Textfields in a LazyColoumn 用户可以删除每个文本字段 但这样做时 它会复制 REPLACE 文本字段中的值 发生了什么 我添加了 3 个人 第 1 人 第 2 人 第
  • 恐慌:缺少“x86”CPUS 的模拟器引擎程序

    我正在尝试运行我的第一个 Android Hello World 程序 但在这样做时 Android studio 给出了一个错误 以下是所有详细信息 IDE Android Studio 操作系统 OSX 版本 10 9 5 命令 Use
  • 播放完整性本地验证

    我正在尝试将播放完整性检查集成到我的应用程序中 以确保我的应用程序没有安装在已取得 root 权限的 Android 设备上 我可以按照谷歌的指导成功获得完整性令牌响应document https developer android com
  • Xamarin - 未找到类(Android 支持库)

    我正在尝试使用 AppCompat 实现具有向后兼容性的 Material Design 继tutorial https blog xamarin com android tips hello material design v7 appc
  • 在使用单独方向布局旋转设备的同时继续播放 YouTube 播放器

    我正在尝试将包含 YouTube 播放器的视图添加到当我旋转设备时继续播放的活动 由于 UI 不仅仅包含视频 因此我使用YouTubePlayerFragment 当方向从纵向变为横向时 系统应使用不同的布局文件 此布局还包括 YouTub
  • 如何在 Windows 中压缩 apk 文件

    我已经签署并打包了 Xamarin 应用程序因此使用 Visual Studio 创建了 apk 文件 如何在 Windows 中压缩对齐此文件 确保您拥有Android SDK 构建工具安装然后检查你的SDK安装在哪里我的安装在哪里C P
  • Android 上默认安装哪些字体? [复制]

    这个问题在这里已经有答案了 Android 设备上默认安装哪些字体 我知道关于机器人字体 http www droidfonts com and Roboto https developer android com design style
  • 如何在Android中设置音频均衡器

    我正在制作一个媒体播放器 其中需要使用 搜索栏 将均衡器效果设置为 低音 可怕 摇滚 流行 中 我得到了一个链接 其中使用了一些 NDK 库来执行此操作 是否有任何 Java 库可以执行此操作 请解释执行此操作的逻辑是什么 Override
  • 动画片段和返回堆栈

    我在使用或理解如何弹出时遇到问题 后台堆栈中的 FragmentTransactions 处理自定义 动画 具体来说 我希望它能够调用 out 动画 但是 看来不是 我有一个简单的方法来处理片段事务 FragmentTransaction
  • android:web服务图像替换为本地文件夹中的图像

    我进入了 Android 聊天应用程序的最后阶段 我在使用图像和网络服务时遇到了一些问题 因此 当我选择图像并将该图像发送到 Web 服务时 我从服务获取 URL 我如何将该网址转换为本地文件夹中的图像 我很困惑如何才能使其发挥作用 我想在
  • 如何使用 Google Assistant 触发我的应用程序

    我正在尝试构建一个可以由谷歌助手触发的简单应用程序 就像用户说 嘿 Google 打开 TestApp 或 嘿 Google 从 TestApp 执行 xyz 一样 最好的方法是什么 对话流 说 好吧 Google 使用 您的应用程序 执行
  • Android:转换为位图时,回收器视图的宽度和高度必须> 0

    在 Sqlite 中存储文本和图像 并尝试将这些数据检索到 recyclerview 中 当将图像显示到 recyclerview 中时 它显示错误宽度和高度必须 gt 0 在将图像保存在 sqlite 中时 我将位图转换为字节 数据库助手
  • Pre-Lollipop 设备上 ImageButton 的高度效果

    我正在尝试为 ImageButton 应用海拔效果 它在我运行 Android 5 0 的 Nexus 平板电脑上运行良好 但在 Lollipop 之前的设备上无法运行 尝试了 ViewCompat setElevation view va
  • 在 SQLite 中加密数据

    如何加密我的数据 就我研究的解决方案而言 有两种方法 使用android提供的算法加密数据 我使用android提供的 Cipher 来加密我的数据 但我在检索大量记录的数据时遇到问题 导致应用程序的性能显着降低 我对整个数据库进行了编码
  • 如何调整图像大小而不模糊,或使用毕加索

    我需要帮助来改进我的代码 我在做什么 主活动中有一个按钮 单击时 用户选择图像 之后 图像通过意图传递到另一个活动 add image java 并显示在图像视图中 之后我将图像发送到服务器 我的问题 1 我想要将路径图像发送到第二个意图然
  • 请求位置更新参数 android

    我对这个参数感到困惑 locationManager requestLocationUpdates provider 60000 10 listener 这是它的执行方式location update listener if time 60
  • 在 Back 上按遍历最后两个选项卡在 BottomNavigationView 中无法正常工作?

    单击后退按钮后 导航到上一个打开的选项卡 您只需遍历最后打开的两个选项卡即可退出应用程序 如何实现 我只想遍历我打开的所有选项卡 然后应用程序应该退出 这是布局
  • Toast.LENGTH_LONG 和 Toast.LENGTH_SHORT 的值是多少?

    我正在我的应用程序中打印 Toast 消息以显示通知 但我想知道 Toast LENGTH LONG 和 Toast LENGTH SHORT 我还可以使用哪些其他值 谁能告诉我这两个变量的值是多少 还有另一个问题可以回答您正在寻找的内容
  • 构建 AOSP 5.1 时出现 API 更改错误

    目前正在尝试构建 android 5 1 0 r5 我已经检查了来源并且没有做任何修改 但是 编译时出现以下错误 Checking API checkpublicapi current out target common obj PACKA

随机推荐

  • 创建 vscode 主题时如何自定义命令调色板颜色和键绑定

    为自己创建一个 VSCode 主题 我喜欢目前的颜色配置 但是当我打开命令调色板时 它是 透视 的 因此很难阅读 设计主题时如何配置调色板 V1 36为命令调色板 快速打开面板添加了这两个颜色自定义 quickInput backgroun
  • Gcc 隐藏来自包含的静态库的符号的可见性

    I have 一个共享库 比如说libShared so 其中包含一个类Bar 用一种方法int Bar do int d const 一个静态库 比如说libStatic a 其中包含一个类Foo 用一种方法int Foo act int
  • 如何在 C# 中更改 EMF+ 图像的颜色

    我正在尝试开发一种特殊类型的热图 其中标记的颜色取决于某些计算变量的值 我需要做的是更改现有 EMF Image 的颜色 以下代码在使用 png 或 wmf 文件时非常有用 但在使用 EMF 文件时 DrawImage 不会绘制任何内容 E
  • 如何创建非托管 Neo4j 扩展?

    我对我的项目有一些具体要求 因此我决定实现非托管 Neo4j 扩展 我在 Neo4j 文档中找到了这些信息 非托管扩展 http neo4j com docs stable server unmanaged extensions html
  • ARKit 人物遮挡样本是如何完成的?

    这可能是一个晦涩的问题 但我在网上看到了很多非常酷的示例 展示了人们如何使用 ARKit 3 中新的 ARKit 人物遮挡技术来有效地将人物与背景 分离 并对 人物 应用某种过滤 人 见 在查看苹果提供的源代码和文档时 我发现我可以检索se
  • scala 中 Magic 的 ColumnNotFound 问题

    我收到 play exceptions JavaExecutionException 尝试后在一段代码中出现 ColumnNotFound comments id 迁移到 MySql 而不是 memorydb Magic 对 Postgre
  • Graphics.MeasureString 允许过多空白

    我正在使用一个函数来调用要在区域内呈现的一段文本 该函数的基本工作原理是 Dim measureSize as Size Do myFont new Font myFont Name myFont Size 1 FontStyle Regu
  • 同时ajax请求angularjs?

    我想一次发送多个ajax请求 这是我的js代码 a class btn btn success Re Check a app controller customersCrtl function scope http timeout func
  • 是否可以缓存 lambda 表达式中计算的值?

    下面代码中的ContainsIngredients方法中 是否可以缓存p 成分value 而不是多次显式引用它 这是一个相当简单的示例 我只是为了说明目的而编写的 但我正在处理的代码引用了内部深处的值p eg p InnerObject E
  • glfwGetVideoMode(glfwGetPrimaryMonitor()) 不起作用

    所以我正在观看关于如何使用 Lwjgl 创建窗口的 java 教程 我到达了这部分 您可以在其中获得主监视器 ByteBuffer vidmode glfwGetVideoMode glfwGetPrimaryMonitor glfwSet
  • 如何设置默认的Windows套件(SDK)版本?

    我曾经在我的 C 应用程序中使用 Windows 8 1 SDK 一切正常 今天我安装了 Windows 10 SDK 但找不到一种方法将其设为默认 我可以在 Visual Studio 项目设置中对新的 SDK 路径进行硬编码 但这是非常
  • Xcode - 单元测试 - 针对 iOS 12 进行编译,但模块的最低部署目标为 13

    我在运行单元测试时遇到问题 问题位于代码行下方 testable导入PROJECT NAME Error Compiling for iOS 12 1 but module PROJECT NAME has a minimum deploy
  • AndroidcameraSource.stop()导致应用程序冻结

    我正在使用 google Vision API 构建一个具有二维码扫描仪的应用程序 读取二维码后 我无法停止相机 流量是MainActivity gt QrActivity一旦二维码收到检测 应用程序应返回到主活动 如果我不打电话camer
  • 重新定义/隐藏局部变量有多糟糕?

    在将遗留项目升级到 VS2015 时 我注意到存在很多错误 例如在函数内部重新定义局部变量 void fun int count applesCount cout lt lt Apples cost lt lt count 1 25 for
  • Rails - 有两个父母的嵌套资源

    假设我有一个带有两个父模型的子模型 Event has many tickets Person has many tickets Ticket belongs to Event Ticket belongs to Person 路线已映射
  • SocketException:使用 UdpClient 打开端口时“访问被拒绝”

    我正在尝试开始侦听 Android 设备上的 UDP 端口之一 我正在使用 Xamarin Forms 并在物理 Android 手机上测试它 public void StartListening int port 13000 Listen
  • 手动更新 Carrierwave Uploader 安装的属性

    我无法在由 Carrierwave 上传程序安装的属性上使用 model update attribute SQL 语句不会接受该值并将 NULL 添加到占位符 如果我从模型类中删除 mount uploader 语句 它会正常工作 我正在
  • Angular ng-if="" 具有多个参数

    我正在尝试开始角度开发 在查看文档后 仍然存在一些问题 我怎样才能最好地写一个ng if有多个参数对应于 if a b or if a b 有可能的 span I m removed when the checkbox is uncheck
  • 等待所有的 Promise 在 Node.js 中用 Bluebird 完成

    在使用 bluebird 的 Node js 中等待所有 Promise 完成的最佳方法是什么 假设我想从数据库中选择记录并将它们存储在 redis 中 我想出了这个 loadActiveChannels function return K
  • 如何以编程方式获取父主题

    假设我在以下位置声明了以下自定义主题themes xml