gpt4 book ai didi

java - 从应用程序类中获取主题属性

转载 作者:行者123 更新时间:2023-11-29 04:55:13 25 4
gpt4 key购买 nike

我一直在使用一种方法从当前Context中获取颜色属性:

public static int getColorAttribute(Context context, @AttrRes int attr) {
final TypedValue value = new TypedValue();
context.getTheme().resolveAttribute(attr, value, true);
return value.data;
}

它工作得很好,但是当我尝试在扩展 Application 的类中使用它时,它返回 0。在大多数情况下,我会这样调用该方法:

int colorAccent = Util.getColorAttribute(this, R.attr.colorAccent);

这将返回我在 themes.xml 中设置的 "colorAccent" 作为我的 list 中的 AppTheme。但是在 Application 类中,我不得不调用 getApplicationContext() 而不是 this。因此,我将 Activity 中该方法的其他实例之一也切换到了 getApplicationContext(),它返回了 0。我还尝试了 getApplication()getBaseContext(),结果相同。

我想知道是否有一种方法可以从 Application 类中的应用程序主题中获取颜色。或者,如果不是,为什么 getApplicationContext().getTheme() 似乎没有返回应用程序主题。

最佳答案

你可以尝试自己设置主题吗?

getApplicationContext().getTheme().applyStyle(R.style.someTheme, true);

然后在 styles 中有你的主题,它是你想要在 android 中的某个主题的子元素。此外,应该不赞成使用此方法,因为主题是要从 Activity 上下文中访问的。 UI 任务的应用程序上下文不完整。

关于java - 从应用程序类中获取主题属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052810/

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