如何使用自定义项属性创建<string-array>?

时间:2018-05-23 18:54:34

标签: android xml

我是一名JS开发人员,当我想要实现一个选择时我会想到HTML,我只是这样做:

<select name"cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

使用JS太容易操纵视图。

当我尝试在Android XML中实现时:

<string-array name="cars">
    <item value="volvo">Volvo</item>
    <item value="saab">Saab</item>
    ...
</string-array>

Android XML没有值属性,似乎无法向标记添加新属性。

如何将其转换为具有文本的Android XML Spinner,并链接到Java代码中以获取所选项目值 XML中的一种简单方法?

1 个答案:

答案 0 :(得分:0)

没有办法像你想要的那样持有价值和物品。你可以做的是定义两个单独的数组,并通过相同的索引在代码中相互引用:

<string-array name="cars">
    <item>Volvo</item>
    <item>Saab</item>
</string-array>

<string-array name="cars_values">
    <item>volvo</item>
    <item>saab</item>
</string-array>

检索数组,现在不同数组中的相同索引同时包含值和实际的汽车:

Resources res = getResources();
String[] cars = res.getStringArray(R.array.cars);
String[] carsValues = res.getStringArray(R.array.carsValues);

当您在微调器中使用它时,您可以通过调用以下方式获取所选位置:

int pos = spinner.getSelectedItemPosition();

并访问以下值:

String selectedItem = cars[pos];
String selectedValue = carsValues[pos];