gpt4 book ai didi

android - 如何对方法进行全局覆盖?

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

我在我的 MainActivity 类中声明了一个全局 bool 变量并将其值设置为 true:

public class MainActivity extends AppCompatActivity {
public boolean inAppTextIntegration = true;
//onCreate method and stuff

我的应用程序中还有 11 个 Activity 。而且,在每个 Activity 中,我都将 attachBaseContext 方法重写为:

@Override
protected void attachBaseContext(Context base) {
if(inAppTextIntegration) {
super.attachBaseContext(ZeTarget.attachBaseContext(base, this));
}
else {
super.attachBaseContext(base);
}
}

我已经在所有 Activity 中声明了 bool 变量 inAppTextIntegration。现在是问题部分:由于我在所有 Activity 中都做同样的事情,是否可以减少代码

目前,我正在使用 SharedPreferencesinAppTextIntegration 的值存储在我的 MainActivity 中,然后在其他 Activity 中访问该值,因为我不想设置在所有 Activity 中手动设置此值。

同样,我面临的问题是在所有其他 Activity 中,正在执行覆盖方法的 else 部分(我正在初始化 inAppTextIntegration 中的变量 所有其他 Activity 的 onCreate 方法。在 onCreate 方法之外执行此操作会导致空指针异常,因为尚未设置上下文)。

那么,如何仅通过更改 MainActivity 中的一个变量 来控制对所有其他 Activity 的 attachBaseContext 的覆盖?

最佳答案

(i) 创建一个类,其中包含所有 Activity 将具有的所有常用方法。

(ii) 使此类扩展 ActivityAppCompatActivity 或任何您的所有 Activity 正在扩展的内容。

(iii) 让你所有的 Activity 都扩展这个类,而不是它们已经扩展的。

你完成了:)

关于android - 如何对方法进行全局覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34664901/

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