【问题标题】:How can I replicate select (HTML) in android string.xml file [duplicate]如何在 android string.xml 文件中复制选择(HTML)[重复]
【发布时间】:2013-06-14 13:14:32
【问题描述】:
我必须复制
<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,但它没有让我选择赋予物品价值。 A 这些值是静态的,我想知道这是否可以在 string.xml 中完成,而不是使用其他解决方法。
请告诉我如何继续。
【问题讨论】:
标签:
android
spinner
android-spinner
arrays
【解决方案1】:
您可以定义两个字符串数组,一个用于名称,另一个用于值:
<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>
【解决方案2】:
android 中的 Spinner 和其他类似的基于列表的元素是通过适配器填充的,这些适配器将数据(在本例中为数据数组或来自数据库查询的光标)转换为可由视图显示的表单.
在这里,您要查看 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。
希望这会有所帮助!