2011-12-22 2 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); 

=== EDIT (образец кода) ====

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

Привет, я получаю то, что вы имеете в виду. Но как получить значение из spinner_array_values? Я получаю позицию spinner_array, используя spinner.getSelectedItemPosition(). Как объявить ссылку на string_array_value? – Hend

+0

Я отредактировал свой ответ и добавил пример кода. –

+0

Хорошо! Это сработало. благодаря – Hend

0

Лично я хотел бы создать пользовательский ArrayAdapter. Это позволит вам использовать свой собственный класс (например, Food Food) в качестве элемента в списке.

Таким образом, вы можете сделать все свои расчеты абстрактными.

Этот video может помочь вам начать работу с правой ноги.

Смежные вопросы