2011-12-22 3 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> 

をイベントハンドラ、スピンナの選択されたインデックスを取得します。このインデックスを使用して、2番目の配列から価格を取得します。

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

=== EDIT(コードサンプル)====

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

+0

私は自分の答えを編集し、サンプルコードを追加しました。 –

+0

よろしくお願いします。出来た。ありがとう – Hend

0

、私はカスタムArrayAdapterを作成します。そうすれば、あなた自身のクラス(例えば、Foodクラス)をリストの項目として使うことができます。

あなたはすべての計算を抽象化することができます。

このvideoは、右足を始めることがあります。

関連する問題