我已经尝试了类似问题的所有建议,但我无法解决它。Spinner 视图给了我一个空指针异常。异常发生在以下行:spinner.setAdapter(adapter);
. 我怀疑它与没有正确充气有关。字符串数组应该不是问题。我还在这里尝试了几乎完全相同的代码副本:http: //developer.android.com/guide/topics/ui/controls/spinner.html。
我还多次清理了我的代码。任何人都可以找到问题吗?
代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Spinner spinner = (Spinner) findViewById(R.id.themeSpinner);
String[] themesArray = new String[]{"Dark Holo Theme"};
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, themesArray);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SettingsActivity" >
<Spinner
android:id="@+id/themeSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/screenDimSwitch"
android:layout_centerHorizontal="true" />
</RelativeLayout>
日志猫:
12-28 16:22:04.011: E/AndroidRuntime(12269): 致命异常: main 12-28 16:22:04.011: E/AndroidRuntime(12269): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. example.sudokuandroidprobeersel/com.example.sudokuandroidprobeersel.SettingsActivity}:java.lang.NullPointerException 12-28 16:22:04.011:E/AndroidRuntime(12269):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) 12 -28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app .ActivityThread.access$600(ActivityThread.java:127) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) 12-28 16: 22:04.011:E/AndroidRuntime(12269):在 android.os.Handler.dispatchMessage(Handler.java:99) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.os.Looper.loop(Looper.java:137) 12-28 16 :22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread.main(ActivityThread.java:4512) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 java.lang.reflect。 Method.invokeNative(Native Method) 12-28 16:22:04.011: E/AndroidRuntime(12269): at java.lang.reflect.Method.invoke(Method.java:511) 12-28 16:22:04.011: E /AndroidRuntime(12269): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:984) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:751) 12-28 16:22:04.011: E/AndroidRuntime(12269): at dalvik.system.NativeStart.main(Native Method) 12-28 16:22:04.011:E/AndroidRuntime(12269): 引起: java.lang.NullPointerException 12-28 16:22:04.011: E/AndroidRuntime(12269): at com.example.sudokuandroidprobeersel.SettingsActivity.onCreate(SettingsActivity.java:80) 12- 28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app。 Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11 更多E/AndroidRuntime(12269): 在 android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11 更多E/AndroidRuntime(12269): 在 android.app.Activity.performCreate(Activity.java:4465) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1052) 12-28 16:22:04.011: E/AndroidRuntime(12269): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011: E/AndroidRuntime(12269): ... 11 更多
更新:
导致空指针异常的对象是 Spinner,而不是适配器。虽然 R.id.themeSpinner 在 R 中被正确引用。