справка spinner.setSelection

#android #nullpointerexception #spinner

#Android #исключение nullpointerexception #счетчик

Вопрос:

Я пытаюсь загрузить свои настройки и обновить счетчик, чтобы отобразить ранее сохраненное значение. Я никогда раньше не использовал spinner.setSelection и продолжаю получать nullpointerexceptions.

 String[] timeItems = new String[] {"After 2 minutes", "After 5 minutes", "Never"};
ArrayAdapter<String> adapter;
Spinner screenSpinner;
  

onCreate():

 Spinner screenSpinner = (Spinner)findViewById(R.id.spinner_screen);
        screenSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, timeItems);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        screenSpinner.setAdapter(adapter);
  

loadPrefs()

     //load the preferences
...
    //then update the selection in the spinner    
    if (mScreenTimer == SCREEN_TIMER_2MINUTES) {
                    int tmp_index = adapter.getPosition("After 2 minutes");
                    screenSpinner.setSelection(tmp_index,true);
                } else if (mScreenTimer == SCREEN_TIMER_5MINUTES) {
                    int tmp_index = adapter.getPosition("After 5 minutes");
                    screenSpinner.setSelection(tmp_index,true);
                } else if (mScreenTimer == SCREEN_TIMER_NEVER) {
                    int tmp_index = adapter.getPosition("Never");
                    screenSpinner.setSelection(tmp_index,true);
                }
  

Я получаю NullPointerExecution в screenSpinner.setSelection(tmp_index, true)

Комментарии:

1. Рассмотрите возможность публикации полной трассировки стека в следующий раз. Из вашего вопроса неясно, получаете ли вы в буквальном смысле NullPointerException в этой строке, или что-то внутри вызова setSelection находится там, где NullPointerException находится. Если это первое, то screenSpinner является null .

Ответ №1:

Попробуйте настроить выбор после настройки адаптера