如何从字符串资源中获取ArrayAdapter字符串?

时间:2014-08-28 22:09:22

标签: android android-arrayadapter

我正在使用ArrayAdapter<String>来显示单个选项Dialog,如下所示:

dialogBuilder.setAdapter(arrayAdapter ...

这是ArrayAdapter

arrayAdapter = new ArrayAdapter<String>(StartActivity.this, android.R.layout.select_dialog_singlechoice);
arrayAdapter.addAll("A Tropical Rainforest", "Backwater Chorus", "Big River", "Bird Song 1", "Bird Song 2", "Cave Ambience", "Cold Stormy Wind",
            "Crickets", "Deep Woods", "Fireplace", "Jungle River", "Long Soothing Rain", "Ocean Waves 1", "Ocean Waves 2",
            "Pacific And Songbirds", "Pig Frogs", "Small Green Froggies", "Small Rapid", "Sparkling Water", "Stormy Wind",
            "Thunder and Rain", "Thunderstorm Inner Perspective", "Twilight", "Waterfall", "Wind");

现在问题是我想让它成为一个多语言应用程序,这意味着我需要从String Resources获取所有这些字符串。但我不能这样做,因为字符串资源返回int,而我只能在那里插入String

知道我该怎么做吗?

2 个答案:

答案 0 :(得分:0)

创建数组资源

<resources>
    <string-array name="values">
        <item>A Tropical Rainforest</item>
        <item>Backwater Chorus</item>
        <item>Big River</item>
        <item>Bird Song 1</item>
        <item>And so on</item>
    </string-array>
</resources>

现在,您可以从以下代码中检索值:

 String values[] = getResources().getStringArray(R.array.values);
 arrayAdapter.addAll(values);

答案 1 :(得分:0)

首先,在资源中定义一个字符串数组:

<string-array name="nature_things_array">
    <item>A Tropical Rainforest</item>
    <item>Backwater Chorus</item>
    <item>Big River</item>
    <item>Bird Song 1</item>
</string-array>

然后将单项选项设置为AlertDialog.Builder

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.pick_color)
       .setMultiChoiceItems(R.array.nature_things_array, null,
                  new DialogInterface.OnSingleChoiceClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which,
                   boolean isChecked) {
               // ...
           }
       })
});
return builder.create();

你可以找到一个很好的Android对话手册here