它不是重复的,在我的问题中书写我已经尝试了解决方案并得到了同样的错误。
我有以下代码:
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文件中可以看到..
答案 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>