0

我必须复制

<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 中完成,而不是使用其他解决方法。

请告诉我我该如何继续。

4

2 回答 2

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

字符串.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>
于 2013-06-14T13:29:58.397 回答
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 - 将值放在单独的数组资源中,并在必要时创建自己的适配器类,以便根据需要使用它们

有关使用微调器的更多信息和更多链接,请查看此处

希望这可以帮助!

于 2013-06-14T13:32:30.767 回答