在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等资源值?
答案 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中)
Android会自动为用户的区域设置选择适当的文件。