为什么我在操作栏中尝试使用微调器时会出现NullPointerException?

时间:2015-08-05 21:02:21

标签: android view spinner

我只是想在操作栏中添加微调器,但经过大量调试后我无法理解为什么getActionView()方法没有返回任何视图(我也用视图测试).Logcat显示:

`java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference`

这是我的Java代码

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);


        MenuItem item=menu.findItem(R.id.spinner_item);
        Spinner spinner=(Spinner)item.getActionView();
        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.items,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);


        return true;
    }

这是我的res / menu / menu.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.haha.Main" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"
        />

    <item
        android:id="@+id/spinner_item"
        android:title="@string/sort"
        app:showAsAction="always"
        android:actionLayout="@layout/spinner_main"
        android:checkable="true"
        />

</menu>

这是layout / spinner_main.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Spinner 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:entries="@array/items" 
    android:background="#212121"
    />

0 个答案:

没有答案