Android设置微调器位置

时间:2016-05-09 12:53:13

标签: android position set spinner

我试图在活动录入时设置我的微调器位置,但我在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;当我宣布它。

2 个答案:

答案 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);