将在Spinner中选择的值映射到其他值

时间:2011-12-22 09:50:57

标签: android spinner

我有一个物品的微调,例如{苹果,橘子,鸡蛋,面包}。当用户选择“鸡蛋”时,它的价值/成本($ 2)将用于以后计算总成本。如何将值(项目成本)与用户在微调器中选择的项目进行映射?我有点困惑是否有可能。看起来它有2个值。

类似的东西:

double totalExpenses = $23 + (cost of the item user selected)

的strings.xml

<string-array name="spinner_array">
<item>Apples</item>
<item>Oranges</item>
<item>Eggs</item>
<item>Bread</item>
</string-array>

2 个答案:

答案 0 :(得分:2)

如果你想避免创建自己的适配器(有时你想让它保持简单)

有另一个相同大小的数组,其价格为:

<string-array name="spinner_array">
   <item>Apples</item>
   <item>Oranges</item>
   <item>Eggs</item>
   <item>Bread</item>
</string-array>

<string-array name="spinner_array_values">
   <item>5.99</item>
   <item>6.99</item>
   <item>2.99</item>
   <item>12.99</item>
</string-array>

然后,在事件处理程序上,获取微调器的选定索引。使用该索引从第二个数组中获取价格。

double totalExpenses = $23 + Double.parseDouble(value of spinner_array_values index at the spinner selected index);

===编辑(代码示例)====

int selectedIndex = spinner.getSelectedItemPosition();
String[] price_array = getResources().getStringArray(R.array.spinner_array_values);
double totalExpenses = 23 + Double.parseDouble(price_array[selectedIndex]);

OR

double totalExpenses = 23 + Double.parseDouble(getResources().getStringArray(R.array.spinner_array_values)[spinner.getSelectedItemPosition()]);

答案 1 :(得分:0)

就个人而言,我会创建一个自定义ArrayAdapter。这将允许您使用自己的类(例如,类Food)作为列表中的项目。

通过这种方式,您可以完成所有抽象的计算。

video可能会让你从右脚开始。