我有一個工具欄,片段和我想添加搜索查看該工具欄搜索查看在片段的Android
我有這樣的:
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;
}
});
}
,而且此項目的菜單:
<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"
/>
但我有一個空指針...
致命例外:main 過程:jaimeperezpedraza.org.tienda,PID:15971 顯示java.lang.NullPointerException:嘗試上的空對象引用調用虛擬方法 '無效android.widget.SearchView.setOnQueryTextListener(android.widget.SearchView $ OnQueryTextListener)'
我覺得我不抓searchview好...
有幫助嗎?
'查看getActionView(菜單項項)'已經過時:https://developer.android.com/reference/android/support/v4/view/MenuItemCompat.html #getActionView(android.view.MenuItem) –
哦...謝謝我去搜索其他mettod –
@VeneetReddy - 它只在26.0.0版本中被棄用,它仍然是alpha版本。如果您使用早期版本的支持庫,則仍然需要使用'MenuItemCompat.getActionView'。 – ianhanniballake