我必须复制
<select>
<option value="36">Volvo</option>
<option value="45">Saab</option>
<option value="56">Mercedes</option>
<option value="71">Audi</option>
</select>
string.xml
中的因此,当我在Spinner
中选择任何项目时,它会为我提供项目的值而不是项目的名称。
我的意思是我必须使用这个值。我尝试使用StringArray
,但它没有给我选项来为项目赋值。值是静态的我想知道是否可以在string.xml中完成,而不是使用其他解决方法。
请告诉我怎么办?
答案 0 :(得分:2)
您可以定义两个字符串数组,一个用于名称,另一个用于值:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_names"
android:entryValues="@array/array_name_values"
/>
编辑:
忘记strings.xml
的strings.xml:
<string-array name="array_names">
<item>Volvo</item>
<item>Saab</item>
<item>Mercedes</item>
<item>Audi</item>
</string-array>
<string-array name="array_name_values">
<item>36</item>
<item>45</item>
<item>56</item>
<item>71</item>
</string-array>
答案 1 :(得分:0)
Android中的Spinners和其他类似的基于列表的元素通过适配器填充,适配器将数据(在这种情况下,数据数组或数据库查询中的游标)转换为可由View显示的表单
在这里,您想要查看ArrayAdapter;这个类是数据和微调器之间的接口。 ArrayAdapter可以从许多来源填充:在java代码中以编程方式创建的数组,或者在xml资源字符串文件中硬编码为数组的数组,如下所示:
<resources>
<string-array name="cars_array">
<item>Volvo</item>
<item>Saab</item>
<item>Mercedes</item>
<item>Audi</item>
</string-array>
</resources>
如果您想以这种方式使用静态数据,'item'标签没有像示例中的options标签那样的任何属性。您的选择将是以下之一:
1 - 将此数组与现有的适配器类一起使用,并将这些值以编程方式放在java代码中的某个位置。
2 - 将值放在单独的数组资源中,并根据需要创建自己的适配器类,以便同时使用它们
有关使用微调器的更多信息和更多链接,请查看here。
希望这有帮助!