我有一个储存静态信息,并基于特殊的情况下计算的特殊类。 这是一个特殊的自定义类,不延长活动或Android任何环境的任何部分 。
由于该类从来没有真正被实例化 ,它主要是指在static
水平。 因为我举办了一些这对我来说还是很重要static
enums
是应用程序的流程是至关重要的。
这里的问题:由于类不延长的Android活动的生命周期,我无法从应用程序引用的资源文件的任何字符串值。 (我已经存储在自定义XML文件中的字符串作为特殊的资源)
这里的一切的样子:
自定义类ENUM:
public class CreepIDs {
public static Context context = App.getContext();
public static enum CreepId {
ROBODEE(0, resourceString(R.creeps.robodee));
public final int id;
public final String name;
CreepId(int id, String name){
this.id = id;
this.name = name;
};
};
public static String resourceString(int id){
return context.getResources().getString(id);
}
}
App类推广应用:
public class App extends Application{
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
public static Context getContext(){
return mContext;
}
}
我目前使用的调试功能,并通过应用程序加强App.getContext()
总是返回一个 Context
,值为 null
。 我想不通为什么。 我需要能够引用 R.creeps.robodee
从没有延长生命周期的Android的任何部分的类。
我将通过构造函数传入上下文,但由于CreepId
是一个static enum
CreepIDs
实际上并没有实例化。 我只是从主要活动引用它。
你认为这里是最好的解决办法?