Как считать значение Spinner за пределами onItemSelected?

108
02 октября 2019, 19:40

Всем привет, я новичок в Android. У меня есть два Spinner и в зависимости от выбора переходим к действию. Я пытаюсь получить выбранный результат в виде строки. В методе onItemSelected результат выдает правильно. Но как только я туже строку пытаюсь вывести за пределами этого метода он выдает результат Null. Пожалуйста, помогите разобраться

public class LengthActivity extends AppCompatActivity implements View.OnClickListener {
Spinner lengthLeft, lengthRight;
String textMenuLeft= "";
String textMenuRight= "";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_length);
    Spinner lengthLeft = findViewById(R.id.lengthLeft);
    Spinner lengthRight = findViewById(R.id.lengthRight);
    ArrayAdapter<CharSequence> adapterLeft = ArrayAdapter.createFromResource(this,
            R.array.lengthList, android.R.layout.simple_spinner_dropdown_item );
    adapterLeft.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    lengthLeft.setAdapter(adapterLeft);
    lengthRight.setAdapter(adapterLeft);
    lengthLeft.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            switch (position){
                case 0:
                    textMenuLeft =  "Миллиметр";
                    break;
                case 1:
                    textMenuLeft = "Сантиметр";
                    break;
                case 2:
                    textMenuLeft = "Метр";
                    break;
                case 3:
                    textMenuLeft = "Километр";
                    break;
                case 4:
                    textMenuLeft = "Дюйм";
                    break;
                case 5:
                    textMenuLeft = "Фут";
                    break;
                case 6:
                    textMenuLeft = "Ярд";
                    break;
                case 7:
                    textMenuLeft = "Миля";
                    break;
            }
           //Вот этот результат выдает правильно
            System.out.println("choose in left in method: " + textMenuLeft);
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
 //А вот тут считает что строка TextMenuLeft ноль!!
   System.out.println("choose in left out: " + textMenuLeft);
}
READ ALSO
Как отнести RGB значение к 7 основным цветам?

Как отнести RGB значение к 7 основным цветам?

Мне нужно полученное RGB значение пикселя отнести к 7 основным цветам, каким образом это сделать на Java?

174
Проблема с JAVA_HOME

Проблема с JAVA_HOME

В проекте нажал Invalidate and restart студия закрылась и вдруг выскочило окно

148
Не находит путь до css файлов

Не находит путь до css файлов

Делаю сайт на SpringЕсть страница html,при запуске не отображается графическая часть,а только формы ввода,полагаю дело в том,что java не находит...

130
Как обратиться к айтему списка GridAdapter вне его метода, зная его позицию?

Как обратиться к айтему списка GridAdapter вне его метода, зная его позицию?

Не могу получить нужный мне элемент из ViewHolder'a по позиции, и применить для него некие изменения (заменить background)

101