SearchView в Firebase RecyclerView - PullRequest
0 голосов
/ 27 июня 2019

Я хочу добавить данные 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();
        }  }}
...