FirebaseRecyclerAdapter нельзя применять с двумя вариантами - PullRequest
0 голосов
/ 20 марта 2020

У меня есть объявление FirebaseRecyclerAdapter ниже:

    private void updateList() {
        adapter = new FirebaseRecyclerAdapter<User, ListOnlineViewHolder>(
                User.class,
                R.layout.user_layout,
                ListOnlineViewHolder.class,
                counterRef
        ) {
            @Override
            protected void onBindViewHolder(@NonNull ListOnlineViewHolder holder, int position, @NonNull User model) {
                holder.txtEmail.setText((model.getEmail()));
            }

            @NonNull
            @Override
            public ListOnlineViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return null;
            }
        };
        adapter.notifyDataSetChanged();
        listOnline.setAdapter(adapter);
    }

Объявление adapter = new FirebaseRecyclerAdapter<User, ListOnlineViewHolder> дает ошибку FirebaseRecyclerAdapter cannot be applied. Я знаю, что мне нужно построить FirebaseRecyclerOptions. Как мне построить 2 варианты?

1 Ответ

0 голосов
/ 21 марта 2020

Сначала настройте адаптер, создав FirebaseRecyclerOptions. Например:

 FirebaseRecyclerOptions<User> options =
                new FirebaseRecyclerOptions.Builder<User>()
                        .setQuery(query, User.class)
                        .build();

Затем создайте объект FirebaseRecyclerAdapter. У вас уже должен быть подкласс ViewHolder для отображения каждого элемента. Например:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<User, ListOnlineViewHolder>(options) {
    @Override
    public ListOnlineViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // Create a new instance of the ViewHolder, in this case we are using a custom
        // layout called R.layout.message for each item
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.message, parent, false);

        return new ListOnlineViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(ListOnlineViewHolder holder, int position, User model) {

    }
};

Проверьте здесь для получения дополнительной информации:

https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

...