gpt4 book ai didi

java - 如何从静态方法引用 getTheme 非静态方法?

转载 作者:行者123 更新时间:2023-12-01 09:26:22 25 4
gpt4 key购买 nike

我有两个 Activity :MainActivity.javaThemeActivity.java。在主题 Activity 中,我想在静态方法中使用 getTheme() 方法从主 Activity 中调用它。

主题 Activity :

public static void applyCustomTheme() {
getTheme().applyStyle(R.style.CyanTheme, true);
}

然后在MainActivity中调用:applyCustomTheme();

错误:无法从静态上下文引用非静态方法 getTheme()

最佳答案

Activity 不应包含任何需要从其他类引用的代码,因为它们是您 View 的催化剂 - 保持您的代码划分。我建议您创建一个单独的类,其中包含此方法,并从任何需要它的 Activity 或 fragment 中调用它(静态或非静态)。

public class ThemeManager {

public static void applyCustomTheme(Context context, int styleResId) {
context.getTheme().applyStyle(styleResId, true);
}

}

有了该类,您就可以从任何想要调用它的地方进行简单的调用,只需将上下文作为第一个参数传递,将 themeId 作为第二个参数传递即可。

ThemeManager.applyCustomTheme(this, R.style.CyanTheme);

任何时候您需要向您的应用添加一些其他与主题相关的功能,请将其放入 ThemeManager 类中以使事情井井有条,您会很高兴您这样做了。

关于java - 如何从静态方法引用 getTheme 非静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804078/

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