Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 初始化对象上的NullPointerException_Java_Android_Nullpointerexception - Fatal编程技术网

Java 初始化对象上的NullPointerException

Java 初始化对象上的NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我正在开发我的第一个android应用程序,我正在尝试在我的视图中添加一个微调器。通过阅读Android开发者指南,我了解了如何将其添加到我的视图中,以及如何将项目实际添加到微调器中 除了我实际尝试添加项目时,会弹出以下窗口: Java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)” 如您所见,我正试图在微调器对象上运行

我正在开发我的第一个android应用程序,我正在尝试在我的视图中添加一个
微调器。通过阅读Android开发者指南,我了解了如何将其添加到我的视图中,以及如何将项目实际添加到微调器中

除了我实际尝试添加项目时,会弹出以下窗口:

Java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)”

如您所见,我正试图在微调器对象上运行
.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);
微调器微调器=(微调器)findViewById(R.id.where\u微调器);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.where\u数组,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
上面的代码都是在我调用
setContentView()
之后调用的,所以这不是问题所在

像旋转器这样简单的东西怎么会给我带来这么多麻烦

谢谢

编辑


在我看到一条特定的注释后,我发现我忘记添加包含
的布局文件,其中_spinner
是用于对话框的布局。但是,
where_微调器
应该可以访问,因为该布局中的任何其他对象也可以访问。

您的
微调器
null
<如果使用
setContentView()
设置的活动视图层次结构中找不到视图,或者根本没有调用
setContentView()
,则代码>活动#findViewById()返回空值


根据注释,您的
中的\u微调器实际上位于对话框视图层次结构中。在对话框的层次结构上调用
findviewbyd()
,而不是在活动上调用以查找它

您的
微调器
null
<如果使用
setContentView()
设置的活动视图层次结构中找不到视图,或者根本没有调用
setContentView()
,则代码>活动#findViewById()返回空值


根据注释,您的
中的\u微调器实际上位于对话框视图层次结构中。在对话框的层次结构上调用
findviewbyd()
,而不是在活动上调用以查找它

findViewById
可以返回
null
微调器
为null。您使用
setContentView()
设置的布局是否真的有
where\u微调器
,或者它是在片段布局中?@laalto有,但没有。我忘了提到
where_spinner
在用于对话框的布局文件中,但由于我可以在同一布局中的其他元素中执行此操作,我认为这并不重要,因此您似乎需要调用
findViewById()
在对话框的视图层次结构上,而不是像现在这样在活动中。@laalto有趣的事实:我是在按钮对象上做的,但不是在微调器上。facepalm能否将此作为答案发布,以便我可以接受?:)
findViewById
可以返回
null
微调器
为null。您使用
setContentView()
设置的布局是否真的有
where\u微调器
,或者它是在片段布局中?@laalto有,但没有。我忘了提到
where_spinner
在用于对话框的布局文件中,但由于我可以在同一布局中的其他元素中执行此操作,我认为这并不重要,因此您似乎需要调用
findViewById()
在对话框的视图层次结构上,而不是像现在这样在活动中。@laalto有趣的事实:我是在按钮对象上做的,但不是在微调器上。facepalm能否将此作为答案发布,以便我可以接受?:)