Made this implementation:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.search_menu, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); return true; } private SearchView.OnQueryTextListener searchQueryListener = new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { search(query); return true; } @Override public boolean onQueryTextChange(String newText) { search(newText); return true; } public void search(String query) { fruitsSearch = filter(fruitsList, query); mAdapter = new RecyclerAdapter((ArrayList) fruitsSearch); mRecyclerView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } }; private static List<Fruit> filter(List<Fruit> models, String query) { final String lowerCaseQuery = query.toLowerCase(); final List<Fruit> filteredModelList = new ArrayList<>(); for (Fruit model : models) { final String text = model.getName().toLowerCase(); if (text.contains(lowerCaseQuery)) { filteredModelList.add(model); } } return filteredModelList; } Search does not respond to text input. What needs to be done or corrected?