我描述了我的问题。
我的数据位于名为News的类中,里面有变量名为text_ita,text_eng等,具体取决于语言。 如何根据用户的语言采用各种值?
修改
public class News extends CElement {
public String news_ita;
public String news_eng;
public String news_esp;
public String news_fra;
public String news_por;
}
News n = …;
//I want to it
textview.setText(n.news+language)
答案 0 :(得分:2)
应该是这样的:
Locale locale = Locale.getDefault();
String lang = locale.getDisplayLanguage();
Class<?> c = myObject.getClass();
Field f = c.getDeclaredField("text_" + lang);
String value = (String) f.get(myObject);
答案 1 :(得分:1)
阅读此内容并查找内部发生的事情 http://developer.android.com/training/basics/supporting-devices/languages.html
switch(Locale.getDefault().getDisplayLanguage())
{
case R.id.en:
case R.id.pt:
}
答案 2 :(得分:1)
不,认真。
创建不同的值文件夹,称为values-it,values-en,...并将strings.xml放在每个文件夹中 字符串在所有strings.xml文件中必须具有相同的名称。
就在昨天,我和一个需要使用英语和希伯来语的应用程序的人回答了同样的问题。
问题在于希伯来语是“双重标准”:价值观 - 他和价值观 - 但“它”并没有遇到这个问题。