如何在Android中加载不同国家/地区的特定文件

时间:2012-03-09 10:23:33

标签: android parsing android-resources

  

可能重复:
  Change language programatically in Android

我想开发一个Android应用程序,它将根据用户选择的国家/地区提供一些特定信息。因此,用户将选择一个国家/地区,应用程序将更新该国家/地区的字段。信息是文字。 对于每个国家/地区,信息大约为2-3页,主要字段不同。

我的第一个想法是在“res / raw”文件夹中将文本文件添加到应用程序,并在获取用户首选项后加载它们。这是最好的方法吗?另一个想法是在res / xml中添加xml文件(解析会更容易吗?)。

如果我使用预先打包的文本文件,这是解析文本文件以在应用程序的特定字段中添加信息的最佳方法吗?

3 个答案:

答案 0 :(得分:2)

我认为把它们放在“res/raw”中是件好事。您可以考虑使用xml文件而不是纯文本文件。它可以更容易解析和更好地组织。

答案 1 :(得分:1)

建议使用Jave的方法,但你的方式也是可行的。 为/res/values/strings.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就是这样的。我使用textview来保持简单,但建议将其更改为下拉菜单orso。并且您必须在点击按钮orso后将其放在检查它的位置。

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>

答案 2 :(得分:0)

不是您真正想要的,但您可能也有兴趣阅读有关Localization的开发者文档。