gpt4 book ai didi

Android:如何获取当前主题的资源ID?

转载 作者:IT老高 更新时间:2023-10-28 13:25:14 47 4
gpt4 key购买 nike

在 Android 中,您可以从 getTheme()Resource.Theme 对象的形式获取 Activity 的当前主题。此外,您可以通过其他主题的资源 ID 将主题设置为不同的主题,如 setTheme(R.style.Theme_MyTheme)

但是我如何确定它是否值得——当前主题是否已经是我想要设置的主题?我正在寻找类似 getTheme().getResourceId() 的东西,以便写出类似的东西:

protected void onResume() {
int newThemeId = loadNewTheme();
if (newThemeId != getTheme().getResourceId()) { // !!!! How to do this?
setTheme(newThemeId);
// and rebuild the gui, which is expensive
}
}

有什么想法吗?

最佳答案

我找到了一种无需获取资源 id 即可解决需求的方法。

我正在为我的每个主题添加一个带有字符串名称的项目:

<item name="themeName">dark</item>

在代码中我检查名称如下:

TypedValue outValue = new TypedValue();
getTheme().resolveAttribute(R.attr.themeName, outValue, true);
if ("dark".equals(outValue.string)) {
...
}

关于Android:如何获取当前主题的资源ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7267852/

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