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

标签 android

我在我的 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/

相关文章:

安卓线程问题

android - ListView onScroll 方法中的某些项目为空

通过 PushOver 的 Javascript(用户脚本)智能手机通知

android - 使用 Butterknife 绑定(bind) getActivity().findViewById()

javascript - 使用Jsoup从网页获取数据返回空结果

android - Bash 脚本错误 NDK-Build

android - 增强现实显示当前地址

android - 在 ScrollView 上启用缩放

android - 如何在复选框中选择全部

android - Android 设备属性存储在哪里?