我试图在活动录入时设置我的微调器位置,但我在logcat上得到这个msg
尝试调用虚拟方法' void android.widget.Spinner.setSelection(int)
'在空对象引用上
我有和数组delcared为:
<string-array name="genres">
<item>Action</item>
<item>Animation</item>
</string-array>
在我的活动中
movieGenre = (Spinner) findViewById(R.id.dd_genre);
Log.e("ListView set Item", String.valueOf(movieItem.getaNGenre()));
movieGenre.setSelection(movieItem.getaNGenre());
logcat正确显示了数字:
05-09 12:46:35.624 4940-4940/simpleapps.movierandomizer E/ListView set Item﹕ 3
但是当我设定位置时,它不会接受这个数字。我不明白为什么它说&#34; on a null object reference
&#34;当我宣布它。
答案 0 :(得分:0)
你是否用项目填充了微调器(在这种情况下可能是字符串数组?) 此外,如果您尝试设置的项目编号(在这种情况下为3)超过微调器项目,则会产生运行时错误。
答案 1 :(得分:0)
您必须先为微调器设置适配器。设置适配器后,它不会抛出您提到的异常。
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
// 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);