首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种合理的方法来引用应用程序资源(R.string...)在静态初始化器中

有没有一种合理的方法来引用应用程序资源(R.string...)在静态初始化器中
EN

Stack Overflow用户
提问于 2011-06-15 05:08:13
回答 1查看 2K关注 0票数 6

在我的android类中,有没有一种明智的,干净的方式来引用静态初始化器代码中的应用程序资源?

我特别想定义一个枚举,它在常量中包含一些资源字符串的值。

下面是枚举的一些伪代码

代码语言:javascript
复制
private enum MyEnum {
    Const1(getString(R.string.string1)),
    Const2(getString(R.string.string2)),
    Const3(getString(R.string.string3));

    private String strVal;

    MyEnum(String strVal){
        this.strVal = strVal;
    }
}

这个问题适用于任何类型的静态初始化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-15 05:25:18

我不认为有一种直接的方法,因为加载资源需要上下文。但是,您可以在枚举中提供一个方法,以便在上下文可用时获取所需的字符串。就像这样

代码语言:javascript
复制
private enum MyEnum {
    Const1(R.string.string1),
    Const2(R.string.string2),
    Const3(R.string.string3);

    private int resId;

    MyEnum(int resId){
        this.resId = resId;
    }

    public String resource(Context ctx) {
       return ctx.getString(resId);
    }
}

所以你可以像这样访问它

代码语言:javascript
复制
String val = Const3.resource(context);
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6350193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档