2011-12-22 54 views
2

我使用了微調項目,例如, {蘋果,橘子,雞蛋,麪包}。當用戶選擇「雞蛋」時,其價值/成本(2美元)將在以後用於計算總成本。如何將一個值(項目成本)與用戶在微調器中選擇的項目進行映射?我有點困惑,是否有可能。它似乎有2個值。將Spinner中選定的值映射到其他值

喜歡的東西:

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

如果你想避免創建自己的適配器(有時你希望它保持它的簡單)

有同樣大小的另一種陣列,它具有價格:

<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()]); 
+0

您好,我得到你的意思。但是,如何從spinner_array_values獲取價值?我通過使用spinner.getSelectedItemPosition()來獲得spinner_array的位置。我該如何聲明對string_array_value的引用? – Hend 2011-12-22 12:01:12

+0

我編輯了我的答案並添加了示例代碼。 – 2011-12-22 12:18:47

+0

好的!有效。謝謝 – Hend 2011-12-22 12:47:00

0

就個人而言,我會創建一個自定義ArrayAdapter。這可以讓你使用自己的班級(比如食物類)作爲列表中的項目。

這樣你就可以完成抽象的所有計算。

video可能會讓你開始在右腳。