Android: заполнить прядильщик из strings.xml

У меня проблема с заполнением моего счетчика днями недели.

Макет xml:

<Spinner android:id="@+id/week_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> 

strings.xml

 <resources> <string-array name="days_of_week"> <item>Monday</item> <item>Tuesday</item> <item>Wednesday</item> <item>Thursday</item> <item>Friday</item> </string-array> </resources> 

Ява:

 public class AddModule extends Activity { Spinner day; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); day = (Spinner)findViewById(R.id.week_spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.days_of_week, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); day.setAdapter(adapter); setContentView(R.layout.activity_add_module); } } 

Это строка setAdapter, которая приводит к сбою приложения. Я получаю следующие ошибки:

 11-05 21:24:31.235: W/dalvikvm(867): threadid=1: thread exiting with uncaught exception (group=0x40a9a228) 11-05 21:24:31.245: E/AndroidRuntime(867): FATAL EXCEPTION: main 11-05 21:24:31.245: E/AndroidRuntime(867): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cathal.timetable/com.cathal.timetable.AddModule}: java.lang.NullPointerException 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread.access$600(ActivityThread.java:139) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.os.Handler.dispatchMessage(Handler.java:99) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.os.Looper.loop(Looper.java:154) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread.main(ActivityThread.java:4974) 11-05 21:24:31.245: E/AndroidRuntime(867): at java.lang.reflect.Method.invokeNative(Native Method) 11-05 21:24:31.245: E/AndroidRuntime(867): at java.lang.reflect.Method.invoke(Method.java:511) 11-05 21:24:31.245: E/AndroidRuntime(867): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 11-05 21:24:31.245: E/AndroidRuntime(867): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 11-05 21:24:31.245: E/AndroidRuntime(867): at dalvik.system.NativeStart.main(Native Method) 11-05 21:24:31.245: E/AndroidRuntime(867): Caused by: java.lang.NullPointerException 11-05 21:24:31.245: E/AndroidRuntime(867): at com.cathal.timetable.AddModule.onCreate(AddModule.java:18) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.Activity.performCreate(Activity.java:4538) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 11-05 21:24:31.245: E/AndroidRuntime(867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2158) 11-05 21:24:31.245: E/AndroidRuntime(867): ... 11 more 

Вчера это работало хорошо. Я не могу понять, могу ли я что-то изменить или если у меня проблема с затмением.

 super.onCreate(savedInstanceState); setContentView(yourView); day = (Spinner)findViewById(R.id.week_spinner); 

Вы забыли установить представление перед тем, как получить spinner из xml. Если вы не findViewById представление, findViewById возвращает null .

Любая операция по null ссылке приводит к NullPointerException .

Nambari объясняет, почему вы получаете исключение NullPointerException и как правильно использовать findViewById() .

Я хочу указать более простой способ установки Spinner, который использует настройки по умолчанию, просто добавьте это в свой XML:

 android:entries="@array/days_of_week" 

И вы можете удалить все ссылки на свой адаптер в onCreate() .

Intereting Posts
Создание таймера для отправки HTTP-запроса Периодически – Android Загрузка в фоновом режиме – AndEngine GLES2 API Mobile Vision – объединить новый объект-детектор для продолжения обработки кадра Как установить или получить доступ к sqlite3 из оболочки adb Остановка потока внутри службы Как предотвратить изменение пользователем даты / времени (в Android)? Встроенная звуковая библиотека на Android, которая может реально изменить высоту тона? Как заставить закрыть приложение, такое как система закрыть на Android Получить предложенное имя файла из org.apache.http.HttpResponse Текстовый курсор Android в EditText Android Studio: адаптируемая папка: как разместить изображения для нескольких точек на дюйм? Панель прогресса Android в ImageView Проект уже содержит модуль с этим именем – Android Studio Как создать библиотеку android и загрузить ее на github? Могу ли я получить содержимое WebView с функциями доступности android?