Преобразование строкового значения из spinner в boolean

#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 значения.