【问题标题】:Show string keys instead of values显示字符串键而不是值
【发布时间】:2014-06-05 12:43:39
【问题描述】:

是否可以在 strings.xml 中显示我的字符串的键而不是值,直接在 UI 中检查哪个键是很酷的。

例如

<string name="jobs_key">Jobs</string>

我想在 UI 中显示 jobs_key 而不是 Jobs

【问题讨论】:

    标签: android localization android-resources


    【解决方案1】:

    使用Resources.getResourcesName(int)

    返回给定资源标识符的全名

    here你可以找到文档。你也可以使用反射:

      private ArrayList<String> getKeysName(Context context, String className) {
            Class c;
            ArrayList<String> fieldsName = new  ArrayList<String>();
            try {
                c = Class.forName(context.getPackageName() + ".R$" + className);
                Field[] fields = c.getDeclaredFields();
                for (Field f : fields) {
                    Log.e("LOG_TAG", " " + f.getName());
                    fieldsName.add(f.getName());
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            return fieldsName;
        }
    

    并像 getKeysName(context, "string"); 一样调用它,以获取例如在 string.xml 中声明的所有键。

    【讨论】:

    • 还有全局方式吗?我的大部分字符串都在 xml.files
    • 我想在 UI 中随处显示密钥
    • 为什么不能使用我建议的方法?对于 UI,您需要一个上下文和槽上下文,您可以访问资源
    • 对不起,但我没有看到一种简单的方法可以在我的整个项目中使用这种方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2011-08-06
    • 2021-07-11
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多