使用应用程序的问题
我正在重写一个应用程序(第一个“版本”在分析方面几乎没有,它最终堆积了一堆我想摆脱的问题),我正在努力解决一个从未出现过的问题在第一个版本中。
事情是:我有一个地理数据类。它只提供字符串数组,我可以将它们塞进微调器适配器中。由于我使用了 values xml 文件,因此该类需要访问 Context 以获取适当的资源。
由于我在应用程序的多个点使用此地理数据,我认为我可以创建一个类来扩展应用程序,并在 onCreate 中实例化地理类,我认为只加载一次并多次使用它会更有效我想要的时间。这适用于我的第一个版本:
这是 MyApplication 类
private static Context context;
public void onCreate(){
super.onCreate();
MyApplication.context = getApplicationContext();
geografiaEspana = GeographyClass.getInstance(context);
}
public static GeographyClass getGeografiaEspana() {
if(ctx==null){
Log.w("TAPABOOK", "Tapabook.context nulo");
}
if (geografiaEspana==null){
Log.w("TAPABOOK", "Tapabook.geografiaEspana nula, instanciando");
geografiaEspana = GeographyClass.getInstance(ctx);
}
Log.i("TAPABOOK", "Tapabook.geografiaEspana instanciada");
return geografiaEspana;
}
这是我的地理课
private static GeographyClass instance = null;
public static GeographySpain getInstance(Context context){
if(instance== null){
instance = new GeographySpain(context);
}
return instance;
}
public GeographySpain(Context context){
Resources res = context.getResources();
// load resources data
}
正如我所说,这在我的第一个版本中可以正常工作。但是,在我的新版本中,我在“Resources res = context.getResources();”这一行得到了 NullPointerException 我已经检查过,结果发现我提供的上下文是空的......而且我不明白为什么或我做错了什么