如何使用字符串资源填充android中的下拉列表(Spinner)

时间:2016-02-15 07:28:42

标签: android string

以下是我填充微调器的代码片段:

prod_cat=(Spinner)findViewById(R.id.prod_cat);
String[] items = new String[]{"1", "2", "three"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
prod_cat.setAdapter(adapter);

现在不是用“1”,“2”和“3”填充微调器,而是想用strings.xml中定义的字符串填充它,如下所示:

<string name="cat1">Speakers</string>
<string name="cat2">LED</string>
<string name="cat3">Split AC</string>
<string name="cat4">Window AC</string>

但是,当我使用以下内容时,它表示不可转换的类型。

String s1=(String)R.string.cat1

任何人都可以帮我解决如何从R.string.cat1获取字符串吗?

2 个答案:

答案 0 :(得分:1)

strings.xml中创建一个像这样的字符串数组:

<string-array name="str_arr_categories">
    <item>LED</item>
    <item>Speakers</item>
</string-array>

然后像这样初始化你的ArrayAdapter

ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(this, R.array.str_arr_categories, android.R.layout.simple_spinner_dropdown_item);

答案 1 :(得分:0)

替换

String s1=(String)R.string.cat1

String s1 = mContext.getString(R.string.cat1);

其中mContext是扩展类Context的对象。通常,这将是您的活动(如果此代码在Activity类本身中,您可以使用this来引用它),但在某些情况下,您的上下文可能来自其他地方。