获取strings.xml项值而不使用R.string

时间:2015-05-09 21:28:22

标签: java android

我正在创建一个应用,我希望在strings.xml中获取项目的值,但不使用R.string method

这可能吗?

修改
我会解释应用程序的功能。
基本上,有一个词,我们称之为“玫瑰”,Rose可以表示“花”或“名字”,因为它有两个含义,当用户选择两种含义中的一种时,应用程序会显示所选含义的解释

我不能使用R.string.stringName,因为我创建了一个存储名称和含义之间关系以及正确解释的数据库。

我很抱歉,如果不够清楚,我真的不知道如何解释它。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以简单地使用:

private String getStringResourceByName(String aString) {
      String packageName = getPackageName();
      int resId = getResources().getIdentifier(aString, "string", packageName);
      return getString(resId);
    }

按名称获取字符串,而不是R.string

答案 1 :(得分:0)

您这样做的唯一原因是,如果您正在开发图书馆并且无法直接访问最终应用的 R 类。在这种情况下,你应该使用这样的东西

private String getSomeString() {
    try {
        return getContext().getResources().getString(getContext().getResources().getIdentifier("some_string_identifier", "string", getContext().getPackageName()));
    } catch (Exception e) {
        // Not found, use a default
        return "1234567";
    }
}