我刚从Android Development
开始。现在,我要创建一个enumeration
。我想为该枚举中的每个枚举对象分配一个名称。我想从我的项目资源(res/values/strings.xml
)中获得该名称。
但是从枚举类型内部,我无法调用getResources().getString(R.string.string_name)
。
那是因为枚举不会扩展活动或其他内容吗?
无论如何,我如何从资源中获取字符串?
谢谢!
附言枚举未嵌套在类中。如果可能的话,我想将其保存为单独的文件。
最佳答案
getResources().getString()
只是getActivity().getResources().getString()
的简写。
因此,getResources()
仍然依赖于上下文(活动,片段,上下文等)。
为了克服这个问题,我亲自扩展了Application类并提供了一个公共的静态Context,因此无论您处于活动状态还是POJO,您都可以始终访问整个应用程序中的资源等。
例:
public class MyApp extends Application {
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
这样,您随时可以致电:
MyApp.context.getResources().getString(xxxx);