#java #android
#java #Android
Вопрос:
Вопрос, связанный с Android Studio
Не мог бы кто-нибудь просветить меня о том, как прочитать значение spinner (OnItemSelectedListener) и преобразовать его в boolean (например, как счетчик YES / NO)? Пытаюсь сделать это, чтобы отправить ответ в firebase. Я искал повсюду, но безрезультатно.
Любые рекомендации были бы с благодарностью приняты.
Комментарии:
1. Для получения значения в onItemClick вы можете вызвать parent.getItemAtPosition(позиция), parent и position являются параметрами в методе onItemClick
2. Извините, @Zoe … я поместил теги, связанные с вопросом. Новое в этом.
3. @LevonVardanyan итак, я мог бы просто вызвать метод onItemClick и вернуть позицию выделения как boolean?
Ответ №1:
Что-то вроде этого?
mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String yesOrNoStr = parent.getItemAtPosition(position).toString();
boolean yesOrNo = yesOrNoStr.equals("YES");
}
@Override
public void onNothingSelected(AdapterView<?> parent) { }
});
Также предполагается, что position
это 0
if "YES"
и 1
if "NO"
, тогда вы могли бы альтернативно сделать это:
boolean yesOrNo = position == 1;
Комментарии:
1. Писать не нужно
position == 1 ? true : false
, вы можете просто написатьposition == 1
Ответ №2:
Для получения значения элемента в onItemSelected вы можете вызвать
parent.getItemAtPosition(position)
После этого преобразование в boolean зависит от того, какой тип данных хранит ваш spinner.
Для строки
String value = parent.getItemAtPosition(position);
boolean result = "yes".equalsIgnoreCase(value);
Для целых значений
Integer value = parent.getItemAtPosition(position);
boolean result = value == 1;
Комментарии:
1. Спасибо за помощь. Я воспользовался вашим предложением и немного изменил его, преобразовав выбранный spinner в String и используя конструкцию If-Else для установки boolean значения.