У меня есть RecyclerView с FirebaseRecyclerAdapter. Я хочу заполнить RecyclerView списком имен, когда пользователь начнет вводить текст в SearchView.Фильтрация recyclerview с firebaserecycleradapter
public class SchoolsAdapter extends FirebaseRecyclerAdapter<School, SchoolsAdapter.SchoolViewHolder> {
public SchoolsAdapter(Query ref) {
super(School.class, R.layout.item_school, SchoolViewHolder.class, ref);
}
@Override
public void populateViewHolder(SchoolViewHolder schoolViewHolder, School school, int position) {
schoolViewHolder.name.setText(school.getName());
schoolViewHolder.address.setText(school.getAddress());
}
static class SchoolViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public TextView address;
public SchoolViewHolder(View itemView) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.school_item_tview_name);
address = (TextView) itemView.findViewById(R.id.school_item_tview_address);
}
}
}
Я предполагаю, что мне нужно добавить QueryTextListener к SearchView, что бы обновить запрос в адаптере. Разве это сломает FirebaseRecyclerAdapter?
Или я должен
@Override
public boolean onQueryTextChange(String newText) {
mRecyclerView.setAdapter(new SchoolAdapter(ref.orderByChild("name").startAt(userQuery).endAt(userQuery+"~"))
return false;
}
всякий раз, когда пользователь вводит что-то?
Кроме того, в документах говорится о заказе и сортировке запросов с использованием firebase, но явно не говорят, что лучший способ выполнить сопоставление строк. Каков наилучший способ выполнить сопоставление строк, чтобы представление recycler отображало все результаты, которые имеют поисковый запрос в качестве подстроки записи базы данных, и, возможно, те, которые также находятся на расстоянии редактирования.
Также можно игнорировать запросы?
Можете ли вы прояснить этот образец или профиль, спасибо – SimpiMind