Отображение значения, выбранного в Spinner, на другие значения - PullRequest
2 голосов
/ 22 декабря 2011

У меня есть набор предметов, например, {Яблоки, Апельсины, Яйца, Хлеб}.Когда пользователь выбирает «Яйца», его значение / стоимость ($ 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 ]

2 голосов
/ 22 декабря 2011

Если вы хотите избежать создания собственного адаптера (иногда вы хотите, чтобы все было просто)

Иметь другой массив того же размера, который имеет цены:

<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()]);
0 голосов
/ 22 декабря 2011

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

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

Это видео может помочь вам начать с правильной ноги.

...