Reputation: 13
I have a toolbar into fragment and i want to add searchView for this toolbar
I have this:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
getActivity().getMenuInflater().inflate(R.menu.menu_principal, menu);
MenuItem item = menu.findItem(R.id.buscar);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
try {
ArrayList<Producto> listaFiltrada = filter(list,newText);
adapterProductos.setFilter(listaFiltrada);
}catch (Exception r) {
r.printStackTrace();
}
return true;
}
});
MenuItemCompat.setOnActionExpandListener(item, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
adapterProductos.setFilter(list);
return true;
}
});
}
and this item menu:
<item android:title="Buscar"
android:id="@+id/buscar"
android:icon="@drawable/ic_search_white_24dp"
app:actionViewClass= "android:support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"
/>
But i have a null pointer...
FATAL EXCEPTION: main Process: jaimeperezpedraza.org.tienda, PID: 15971 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SearchView.setOnQueryTextListener(android.widget.SearchView$OnQueryTextListener)' on a null object reference
I think I'm not catching searchView well...
help?
Upvotes: 1
Views: 2520
Reputation: 199805
Your NullPointerException
is due to the searchView
being null. This is because your XML has app:actionViewClass="android:support.v7.widget.SearchView"
- note the :
in the middle of the class name.
It should instead be android.support.v7.widget.SearchView
:
<item android:title="Buscar"
android:id="@+id/buscar"
android:icon="@drawable/ic_search_white_24dp"
app:actionViewClass= "android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"
/>
Upvotes: 2