I implemented SearchView in Actionbar before using appcompat.v7 but when I want to use the SearchView with support library v7 it shows null exception
In style
<item android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_action_search"
app:showAsAction="always|collapseActionView"
android:actionViewClass="android.support.v7.widget.SearchView" />
In Java Class:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
}
My question is how to declare SearchView in onCreateOptionsMenu to be able to set query listener?
If you change
android:actionViewClass
toapp:actionViewClass
your existing code will continue working.You should use the static methods in
MenuItemCompat
do deal with all AppCompat menu items. This was mentioned in this blog post as the last item under 'New Integration'. Just replace yourSearchView
declaration with the following.Here's a link to the MenuItemCompat documentation.
Edit: I just assumed you are using the latest version of AppCompat with the support for the new
Toolbar
widget.