Java item.getActionview()始终提供空值

Java item.getActionview()始终提供空值,java,android,searchview,Java,Android,Searchview,我在工具栏中有一个searchView作为选项菜单 每当我试图设置setOnQueryTextListener时,它都会给我一个NullPointerException: @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu, menu); MenuIt

我在工具栏中有一个searchView作为选项菜单

每当我试图设置
setOnQueryTextListener
时,它都会给我一个
NullPointerException

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menu, menu);
    MenuItem item = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) item.getActionView();  //searchView: null item: "Search"
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {  //searchView: null
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            newText = newText.toLowerCase();
            ArrayList<Note> newNotes = new ArrayList<>();
            for(Note note: notes){
                String name = note.getTitle().toLowerCase();
                if(name.contains(newText)){
                    newNotes.add(note);
                }
            }
            noteListAdapter.setFilter(newNotes);
            return true;
        }
    });
    return true;
}
你在这么做吗

   SearchView search = (SearchView) findItem(R.id.search).getActionView();
请这样做

SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();

<item
        android:id="@+id/search"
        android:title="Search"
        android:icon="@mipmap/search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>
SearchView搜索=(SearchView)菜单.findItem(R.id.search).getActionView();
您正在这样做

   SearchView search = (SearchView) findItem(R.id.search).getActionView();
请这样做

SearchView search = (SearchView) menu.findItem(R.id.search).getActionView();

<item
        android:id="@+id/search"
        android:title="Search"
        android:icon="@mipmap/search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>
SearchView搜索=(SearchView)菜单.findItem(R.id.search).getActionView();

您有输入错误,它应该是
android.support
而不是
android:support

所以使用

<item
        android:id="@+id/search"
        android:title="Search"
        android:icon="@mipmap/search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>

您有输入错误,它应该是
android.support
而不是
android:support

所以使用

<item
        android:id="@+id/search"
        android:title="Search"
        android:icon="@mipmap/search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>


我也尝试过,但它仍然会在SearchView上给我带来NullPointerException,我可以在OP code
菜单中清楚地看到。findItem(R.id.search),看不到您在回答中引用的行。我也尝试过,但它仍然在SearchView上给我NullPointerException,我可以在OP code
菜单中清楚地看到。findItem(R.id.search),看不到您在答案中引用的行