2016-06-10 56 views
1

在res /文件夹从种源ID获取XML种源值我多语言XML文件,一个是阿拉伯语和其他英语:的Android,如何使用Java

<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中的名称?我怎样才能从这些整数值中获得拉马拉,纳布卢斯和杰宁这样的资源价值?

+0

你为什么不保存名称(文本)而不是它的资源int值? – Sanf0rd

+0

但如果你想支持'多语言'在你应用这**而不是**正确的方式。 – Hosseini

回答

0

我同意其他答案,你需要使用getString(/ *你的ID在这里* /)。

支持不同的语言,你只需要创建多个资源文件与字符串:上水库

(在的Adroid工作室)

  1. 右键/值文件夹
  2. 新建 - >值资源文件
  3. 文件名:strings.xml中
  4. 添加区域预选赛
  5. 挑选你的局域网量表

Android会自动为用户的语言环境选择合适的文件。

+0

但我的问题是,我知道整数值只,这些整数值自动生成当我存储int [] names = {R.string.ram,R.string.nablus,R.string.jenin}时,我存储在数据库中的整数值,所以在数据库中我有2131099699,2131099623,21310991231 ,我想从xml getvalue获取相关名称(2131099699) –

+0

因此,您不想要该值,而是想要资源的名称?那么不是“ramallah”,而是“ram”? – maccaroo

+0

我想要{Ramallah,Nablus,Jenin}这样的字符串的值,我知道这些数字只存在于2131099699,2131099623,21310991231,从这些整数如何返回或得到这些数字存储在数据库中的Ramallah,nablus,jenin –

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); 
} 
+0

这应该被接受为答案。 – Talha

+0

我只知道整数值,不知道id,像这些值2131099699,2131099623,21310991231,如何将这些值引用到R.string –

+0

我更新了答案,检查是否您需要的是 –

0

我通过这种方式就像

String[] Names = {this.getResources().getString(R.string.ram), 
this.getResources().getString(R.string.nablus), 
this.getResources().getString(R.string.jenin)} 

在DB名字存储解决我的问题,我一直使用多语言用一个数据库和同桌