按键访问字符串资源

时间:2013-08-14 20:34:44

标签: android

我正在尝试使用xml资源文件来存储某些值的映射。然后,在我的应用程序中,当我想获取它们的值时,我想要一种方法来按键访问xml文件中的值。问题是我事先不知道密钥。有一些逻辑可以评估要获得的密钥,然后我必须得到该密钥的值。例如:

    switch(id) {
       case 0:
         key = hello;
         break;
       case 1:
         key = world;
         break;
    }

现在我想访问我存储在xml文件中的这些键的值。我怎么能做到这一点?我不想使用SharedPreferences,我不能完全使用resources.getString(R.string。 _ )因为我事先不知道密钥。

2 个答案:

答案 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()))