Вот пример использования SearchView с RecyclerView в Android:
-
Сначала включите виджет SearchView в файл макета XML:
<SearchView android:id="@+id/search_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:queryHint="Search" />
-
В вашем действии или фрагменте инициализируйте SearchView и установите прослушиватель поиска:
SearchView searchView = findViewById(R.id.search_view); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // Perform search operation return true; } @Override public boolean onQueryTextChange(String newText) { // Perform filtering based on newText return true; } });
-
Создайте собственный адаптер RecyclerView для отображения результатов поиска:
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { // Adapter implementation goes here }
-
Настройте RecyclerView с помощью адаптера в своем действии или фрагменте:
RecyclerView recyclerView = findViewById(R.id.recycler_view); CustomAdapter adapter = new CustomAdapter(); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(this));
-
Реализуйте логику поиска внутри методов onQueryTextSubmit и onQueryTextChange объекта SearchView.OnQueryTextListener. Вы можете отфильтровать свои данные на основе введенного запроса и соответствующим образом обновить адаптер:
@Override public boolean onQueryTextSubmit(String query) { List<Item> filteredItems = filterData(query); adapter.setItems(filteredItems); return true; } @Override public boolean onQueryTextChange(String newText) { List<Item> filteredItems = filterData(newText); adapter.setItems(filteredItems); return true; } private List<Item> filterData(String query) { // Filter your data based on the query // Return the filtered items as a List<Item> }
В этом примере показано, как использовать виджет SearchView для выполнения операций поиска и фильтрации с помощью RecyclerView в приложении Android.