有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java getResources()来自Android Studio中的枚举

我刚开始讲Android Development。现在,我想做一个enumeration。我想为该枚举中的每个枚举对象指定一个名称。我想从我的项目资源(res/values/strings.xml)中获取该名称

但是在枚举类型中,我不能调用getResources().getString(R.string.string_name)

这是因为枚举没有扩展活动还是什么

我怎样才能从资源中获取字符串呢

谢谢

另外,枚举不嵌套在类中。如果可能的话,我想把它作为一个单独的文件保存


共 (1) 个答案

  1. # 1 楼答案

    getResources().getString()只是getActivity().getResources().getString()的简写

    所以getResources()仍然依赖于有一个上下文(活动、片段、上下文等)

    为了克服这个问题,我个人扩展了应用程序类,并提供了一个公共静态上下文,这样无论您是在活动中还是在POJO中,都可以访问整个应用程序中的资源等

    例如:

    public class MyApp extends Application {
    
        public static Context context;
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            context = getApplicationContext();
        }
    }
    

    有了这个,你可以随时打电话:

    MyApp.context.getResources().getString(xxxx);