Пример Android SearchView с RecyclerView: реализация функций поиска и фильтрации

Вот пример использования SearchView с RecyclerView в Android:

  1. Сначала включите виджет SearchView в файл макета XML:

    <SearchView
    android:id="@+id/search_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:queryHint="Search"
    />
  2. В вашем действии или фрагменте инициализируйте 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;
    }
    });
  3. Создайте собственный адаптер RecyclerView для отображения результатов поиска:

    public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
    // Adapter implementation goes here
    }
  4. Настройте RecyclerView с помощью адаптера в своем действии или фрагменте:

    RecyclerView recyclerView = findViewById(R.id.recycler_view);
    CustomAdapter adapter = new CustomAdapter();
    recyclerView.setAdapter(adapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
  5. Реализуйте логику поиска внутри методов 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.