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

时间:2016-01-07 20:50:27

标签: android

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

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

我的申请中还有11项活动。并且,在每个活动中,我都将attachBaseContext方法重写为:

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

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

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

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

那么,如何通过更改MainActivity中的一个变量,如何在所有其他活动中控制覆盖attachBaseContext

1 个答案:

答案 0 :(得分:3)

(i)创建一个包含所有活动所有常用方法的类。

(ii)使此课程扩展ActivityAppCompatActivity或您所有活动所延伸的内容。

(iii)让您的所有活动扩展此课程而不是他们已经扩展的课程。

你已经完成了:)