以下是我填充微调器的代码片段:
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
获取字符串吗?
答案 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
来引用它),但在某些情况下,您的上下文可能来自其他地方。