Я работаю над своим первым Android-приложением, и я пытаюсь добавить spinner
к моему представлению. Изучив руководство для разработчиков Android, я понял, как добавить его в свое представление и как фактически добавлять элементы в счетчик.NullPointerException по инициализированному объекту
За исключением, когда я на самом деле пытаюсь добавлять элементы и следующие хлопки до:
Java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
Как вы можете видеть, что я пытаюсь запустить .setAdapter()
на объекте вращателя. Обычно произойдет эта ошибка, если я хотел бы попробовать это без инициализации объекта вращателя, но я сделал:
Spinner spinner = (Spinner) findViewById(R.id.where_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.where_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Код выше всего вызывается после я называю setContentView()
, так что это не проблема.
Как может быть, что что-то простое, как прядильщик, вызывает у меня столько неприятностей?
Спасибо.
EDIT
После того как я увидел конкретный комментарий, я увидел, что я забыл добавить, что файл макета, который содержит where_spinner
является расположение используется для диалога. where_spinner
должен быть доступен, так как любые другие объекты в этом макете также есть.
'findViewById' может возвращать' null' –
'spinner' is null. У макета, установленного с помощью 'setContentView()' действительно, есть 'where_spinner', или это, например, макет фрагмента? – laalto
@laalto Это делает, и это не так. Я забыл упомянуть, что 'where_spinner' находится в файле макета, используемом для диалога, но поскольку я могу сделать это с другими элементами в том же макете, я думал, что это не имеет большого значения. –