我刚从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);

08-18 08:58
查看更多