我有一个物品的微调器{苹果,桔子,鸡蛋,面包}。当用户选择“鸡蛋”时,其价值/成本($ 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>
最佳答案
如果您要避免创建自己的适配器(有时希望使其保持简单)
有另一个相同大小的数组,其价格为:
<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]);
要么
double totalExpenses = 23 + Double.parseDouble(getResources().getStringArray(R.array.spinner_array_values)[spinner.getSelectedItemPosition()]);