Я хочу добавить данные Filter Recyclerview с помощью searchview. Я пробовал много способов, но не получил желаемого. Я использую fireBase Recycleradapter.И не смог получить, как использовать Query для поиска в заголовке.другого человека и его изображений. Я хочу выполнить поиск по имени человека. Затем нажмите далее по имени. Откроется профиль этого человека.
Активность в списке:
public class WrestlersListActivity extends AppCompatActivity
{
private RecyclerView recyclerView;
private DatabaseReference reference;
FirebaseRecyclerOptions<WrestlersNamesModel> model;
FirebaseRecyclerAdapter<WrestlersNamesModel, WrestlersViewHolder> adapter;
Toolbar toolbar;
TextView toolbarText;
List<WrestlersNamesModel> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wrestlers_list);
toolbar = findViewById(R.id.listtoolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
recyclerView = findViewById(R.id.wrestlers_names_recycler);
reference = FirebaseDatabase.getInstance().getReference().child("Content").child("Wrestlers");
model = new FirebaseRecyclerOptions.Builder<WrestlersNamesModel>()
.setQuery(reference, WrestlersNamesModel.class).build();
adapter = new FirebaseRecyclerAdapter<WrestlersNamesModel, WrestlersViewHolder>(model) {
@Override
protected void onBindViewHolder(@NonNull WrestlersViewHolder holder, int position, @NonNull WrestlersNamesModel wrestlersNamesModel) {
holder.name.setText(wrestlersNamesModel.getName());
String imageLink =wrestlersNamesModel.getImages().get(0);
Picasso.get().load(imageLink).into(holder.wrestlerProfileImage);
holder.itemView.setOnClickListener(v -> {
final String user_id = getRef(position).getKey();
Intent intent = new Intent(WrestlersListActivity.this,WrestlersProfileActivity.class);
intent.putExtra(Constants.user_id,user_id);
intent.putExtra(Constants.imageLink,imageLink);
startActivity(intent);
});
}
@NonNull
@Override
public WrestlersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.wrestlers_list_cardview, parent, false);
return new WrestlersViewHolder(view);
}
};
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter.startListening();
recyclerView.setAdapter(adapter);
}
@Override
public void onStart() {
super.onStart();
if (adapter != null) {
adapter.startListening();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onStop() {
super.onStop();
if (adapter != null) {
adapter.stopListening();
}
}
@Override
protected void onResume() {
super.onResume();
if (adapter != null) {
adapter.startListening();
} }}