如何在ListView中为ListContents设置不同的语言

时间:2011-10-01 09:35:40

标签: android listview

我有两个简单的ListView:

public class SimpleListView extends Activity {
private ListView lv1 = null;
private ListView lv2 = null;
private String s1[] = {"a", "b", "c", "d", "f", "g","h","i"};
private String s2[] = {"j", "k", "l", "m", "n", "o","p","q"};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);         
    lv1 = (ListView) findViewById (R.id.list1);
    lv2 = (ListView) findViewById (R.id.list2);

    lv1.setAdapter(new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, s1));
    lv2.setAdapter(new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, s2));

}  

} 

这里我想列出内容,即s1和s2是不同语言而不是a,b,c ..
我怎么能这样做?

由于

编辑:

根据language support in android我知道我可以为TextView设置不同的语言。现在我想将语言设置为列表内容。

2 个答案:

答案 0 :(得分:2)

好吧,如果你问如何找出设备上的活动语言在这里看Get the current language in device 然后根据语言填写你的s1和s2

答案 1 :(得分:1)

您应该使用本地化的strings.xml文件。

您的res / values文件夹包含strings.xml文件。

通过使用已翻译的strings.xml文件创建其他值文件夹,您可以涵盖所需的所有区域语言。

以下是一些例子:

  • res/values(英文)
  • res/values-de(德语)
  • res/values-zh(中文)
  • res/values-es(西班牙文)
  • res/values-no(挪威语)
  • res/values-da(丹麦语)

所有文件夹必须包含带有翻译字符串的strings.xml文件。如果您的原始strings.xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">English title</string>
</resources>

...那么对于德语版本可能是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">German title</string>
</resources>

使用字符串资源

如果你想从字符串资源中获取字符串,那么这就是你的工作方式。

代码: getString(R.strings.app_name) // returns "English title" for English users, "German title" for German users, etc.

布局: @string/app_name

更多信息

Android开发者网站提供了有关此主题的出色指南:

http://developer.android.com/guide/topics/resources/localization.html