Spinner setAdapter菜单NullPointerException

时间:2015-11-22 15:35:36

标签: android android-spinner android-menu

当我尝试为我创建的微调器设置适配器时,我得到一个NullPointerException

这是我的代码:

菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
    android:id="@+id/action_country"
    android:icon="@drawable/ic_action_social_public"
    android:title="Country"
    app:showAsAction="always"
    android:actionViewClass="android.widget.Spinner"/>

</menu>

OnCreateOptionsMenu:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    MenuItem item = menu.findItem(R.id.action_country);
    Spinner spinner = (Spinner)item.getActionView();
    String[] items={"Home","Search","Settings"};
    ArrayAdapter adapter=new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,items);
    spinner.setAdapter(adapter);
    return true;
}

为什么我得到NullPointerException?

提前致谢

1 个答案:

答案 0 :(得分:2)

android:actionViewClass更改为app:actionViewClass。您正在使用支持库,因此您需要使用这些属性的支持版本。否则,MenuInflater无法找到您想要的课程,因此会引发NullPointerException