我正在创建一个应用,我希望在strings.xml中获取项目的值,但不使用R.string method
。
这可能吗?
修改
我会解释应用程序的功能。
基本上,有一个词,我们称之为“玫瑰”,Rose可以表示“花”或“名字”,因为它有两个含义,当用户选择两种含义中的一种时,应用程序会显示所选含义的解释
我不能使用R.string.stringName
,因为我创建了一个存储名称和含义之间关系以及正确解释的数据库。
我很抱歉,如果不够清楚,我真的不知道如何解释它。
答案 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";
}
}