我正在处理我的第一个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()
所以这不是问题的所有调用。
怎么能像一个微调那样简单的东西给我带来很多麻烦?
感谢。
编辑
我看到了一个特别的评论之后,我看到了,我忘了补充一点,包含where_spinner
布局文件是用于对话框布局。尽管可以访问where_spinner
,因为该布局中的任何其他对象也是可访问的。
'findViewById'可以返回'null' –
'spinner'为null。您使用'setContentView()'设置的布局是否真的具有'where_spinner',或者它是否在例如一个片段布局? – laalto
@laalto它的确如此,但事实并非如此。我忘了提及'where_spinner'在用于对话框的布局文件中,但是由于我可以在同一个布局中使用其他元素来做到这一点,所以我认为它并不重要。 –