可能重复: 用Android编程改变语言
我想开发一个Android应用程序,它将提供一些具体的信息,根据用户的选择一个国家。因此,用户将选择一个国家和应用程序将更新该国家的字段。信息就是文字。每个国家的信息大约是2-3页,有不同的主要领域。
我的第一个想法是将文本文件添加到"res/raw“文件夹中的应用程序中,并在获得用户首选项后加载它们。这是最好的方法吗?另一个想法是在res/xml中添加xml文件(更容易解析?)。
如果我要使用预先打包的文本文件,那么解析文本文件以便在应用程序的特定字段中添加信息的最佳方法是什么?
发布于 2012-03-09 10:26:20
我认为把它们放在"res/raw“里是好的。您可以考虑使用xml文件而不是纯文本文件。它可以更容易分析和更好地组织。
发布于 2012-03-09 10:57:28
建议使用Jave的方法,但您的方法也是可能的。为/res/value/strings.xml s.xml中的每个语言元素创建。您可以设置并选择具有共享首选项的所选语言。选择所选语言的文件如下所示:
TextView tv = (TextView) getViewById(R.id.textviewid);
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean language = getPrefs.getString("language", "en");
if(language == "en") tv.setText(this.getString(R.string.en));
if(language == "nl") tv.setText(this.getString(R.string.nl));
if(language == "de") tv.setText(this.getString(R.string.de));你必须为页面做一个布局来自己选择一种语言。设置语言首选项的java如下所示。我使用了文本视图来保持简单,但建议将其更改为下拉菜单。你必须把它放在一个地方,在点击一个按钮左右后,它会检查它。
EditText lang = (EditText) findViewById(R.id.etId);
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Editor editor = someData.edit();
editor.putString("language", lang.getText().toString());
editor.commit();我没有测试任何东西,所以它可以包含错误。如果它确实显示错误,而您不知道如何修复它,我愿意帮助您。
我很抱歉我的英语不好
//编辑: strings.xml应该如下所示:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<string name="en">Hello! This is the text!</string>
<string name="nl">Hallo! Dit is de tekst!</string>
....
</resources>发布于 2012-03-09 10:35:53
并不是真正想要的东西,但您可能也对阅读关于本地化的开发人员文档感兴趣。
https://stackoverflow.com/questions/9632447
复制相似问题