我已尝试过类似问题的所有建议,但我无法解决。 Spinner视图给了我一个空指针异常。例外情况发生在以下行:spinner.setAdapter(adapter);
。我怀疑这与它没有正确充气有关。 String数组应该不是问题。我还在这里尝试了几乎完全相同的代码副本: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>
logcat的:
12-28 16:22:04.011:E / AndroidRuntime(12269):致命异常:主要 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):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) 12-28 16:22:04.011:E / AndroidRuntime(12269):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) 12-28 16:22:04.011:E / AndroidRuntime(12269):at android.app.ActivityThread.access $ 600(ActivityThread.java:127)12-28 16:22:04.011:E / AndroidRuntime(12269):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1161) 12-28 16:22:04.011:E / AndroidRuntime(12269):at android.os.Handler.dispatchMessage(Handler.java:99)12-28 16:22:04.011:E / AndroidRuntime(12269):at android.os.Looper.loop(Looper.java:137)12-28 16:22:04.011: E / AndroidRuntime(12269):at android.app.ActivityThread.main(ActivityThread.java:4512)12-28 16:22:04.011:E / AndroidRuntime(12269):at 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):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:984) 12-28 16:22:04.011:E / AndroidRuntime(12269):at 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):at android.app.Activity.performCreate(Activity.java:4465)12-28 16:22:04.011:E / AndroidRuntime(12269):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 12-28 16:22:04.011:E / AndroidRuntime(12269):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) 12-28 16:22:04.011:E / AndroidRuntime(12269):... 11更多
更新
导致空指针异常的对象是Spinner,而不是适配器。 R.id.themeSpinner在R中被正确引用。
答案 0 :(得分:0)
是的,你应该调试它,你会发现spinner对象是null,它只能是这个。你应该清理你的项目并重新安装应用程序,它应该工作,有时会出现布局。
答案 1 :(得分:0)
如果你说的都是真的 (1.它当然是微调器,2。它将空指针抛出到spinner.setAdapter(适配器);)
然后我们可以安全地说明膨胀确实是错误的。
您确定在setContentView(R.layout.activity_settings)中使用了正确的布局吗? 微调器是否不包含在其他布局中?