Android,如何使用java从资源ID获取xml资源值

时间:2016-06-10 02:00:33

标签: java android

在res /文件夹中,我有多语言XML文件,一个用于阿拉伯语,另一个用于英语:

<string name="ram"/>ramallah<string>   
<string name="nablus"/>Nablus<string>  
<string name="jenin"/>Jenin<string> 

<string name="ram"/>رام الله<string>   
<string name="nablus"/>نابلس<string>  
<string name="jenin"/>جنين<string> 

我定义了如下名称:

int[] names= {R.string.ram, R.string.nablus, R.string.jenin}

我将这些值存储在数据库中。当我选择数据时,我的值为2131099699,2131099623和21310991231.如何将这些数字映射到XML中的名称?如何从这些整数值中获取ramallah,Nablus和Jenin等资源值?

3 个答案:

答案 0 :(得分:1)

您可以将资源名称保存到数据库,而不是以这种方式保存资源ID:

String[] names = {"ram", "nablus", "jenin"};

然后您可以通过以下方式访问资源值:

int stringId = context.getResources().getIdentifier(nameStored, "string", context.getPackageName());
String stringValue = "default string";
if (stringId != 0) {
   stringValue = context.getResources().getString(stringId);
}

答案 1 :(得分:1)

我通过存储在像

这样的数据库名称来解决我的问题
String[] Names = {this.getResources().getString(R.string.ram),
this.getResources().getString(R.string.nablus),
this.getResources().getString(R.string.jenin)}

通过这种方式,我继续使用多语言与一个数据库和相同的表

答案 2 :(得分:0)

我同意你需要使用getString的其他答案(/ *你的id * /)。

要支持不同的语言,您只需要使用字符串创建多个资源文件:

(在Adroid Studio中)

  1. 右键单击res / values文件夹
  2. 新 - &gt;值资源文件
  3. 文件名:strings.xml
  4. 添加区域设置限定符
  5. 选择语言
  6. Android会自动为用户的区域设置选择适当的文件。