菜单SearchView无法识别

时间:2016-08-05 15:31:24

标签: android

它不是重复的,在我的问题中书写我已经尝试了解决方案并得到了同样的错误。

我有以下代码:

MainActivity

   @Override
     public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

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

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                search(query);
                return true;
            }

            @Override
            public boolean onQueryTextChange(String query) {
                //filterSearchFor(query);
                return true;
            }
        });
        return true;
    }

菜单/ 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=".MainActivity">

    <android.support.v7.widget.SearchView
        android:id="@+id/search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</menu>

我收到了这个错误:

FATAL EXCEPTION: main
                                                                     Process: com.pgoiv.pokemongoiv, PID: 5336
                                                                     java.lang.NullPointerException: Attempt to invoke interface method 'android.view.View android.view.MenuItem.getActionView()' on a null object reference
                                                                         at com.pgoiv.pokemongoiv.MainActivity.onCreateOptionsMenu(MainActivity.java:192)
                                                                         at

尝试了几个有同样错误的人的解决方案..无法弄清楚是什么错误..

似乎menu.findItem(R.id.search)无法找到我的搜索视图,尽管它在我的xml文件中可以看到..

1 个答案:

答案 0 :(得分:1)

您无法将 SearchView 插入此菜单。请在 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=".MainActivity">

    <item
        android:id="@+id/action_search"
        android:orderInCategory="100"
        android:title="Search"
        android:icon="@drawable/ic_menu_search"
        app:showAsAction="ifRoom|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView"/>

</menu>