我正在尝试使用xml资源文件来存储某些值的映射。然后,在我的应用程序中,当我想获取它们的值时,我想要一种方法来按键访问xml文件中的值。问题是我事先不知道密钥。有一些逻辑可以评估要获得的密钥,然后我必须得到该密钥的值。例如:
switch(id) {
case 0:
key = hello;
break;
case 1:
key = world;
break;
}
现在我想访问我存储在xml文件中的这些键的值。我怎么能做到这一点?我不想使用SharedPreferences,我不能完全使用resources.getString(R.string。 _ )因为我事先不知道密钥。
答案 0 :(得分:2)
只需使用R.id.在开关内,例如:
public String getStringById(id) {
switch(id) {
case 0:
return getString(R.id.hello); break;
case 1:
return getString(R.id.world); break;
}
}
但如果你不能这样做,你就可以获得String的int
id,如下所示:
int text_id = YourActivity.this.getResources()
.getIdentifier("hello", "string", YourActivity.this.getPackageName());
所以你的代码现在将是这样的:
String key = "";
switch(id) {
case 0:
key = hello;
break;
case 1:
key = world;
break;
}
int text_id = YourActivity.this.getResources()
.getIdentifier(key, "string", YourActivity.this.getPackageName());
String text = YourActivity.this.getResources()
.getString(text_id);
return text;
答案 1 :(得分:1)
如果我理解正确,你只有一个String“key”来获取资源?
getResources().getString(
getResources().getIdentifier(key, "string", getPackageName()))