Почему я не могу использовать метод переопределения populateViewHolder?

Я пытаюсь получить данные из database в своем методе fragment onViewCreated. Я использовал FirebaseRecylerAdapter, как показано ниже.

@Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder> firebaseRecyclerAdapter;
    }

    public static class AllUsersViewHolder extends RecyclerView.ViewHolder {

        View view;

        public AllUsersViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }
    }

когда я использую firebaseRecyclerAdapter = new FirebaseRecyclerAdapter, он не дает мне метод populateViewHolder, просто дает метод, как показано ниже

FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder>() {
            @Override
            protected void onBindViewHolder(AllUsersViewHolder holder, int position, AllUsers model) {

            }

            @Override
            public AllUsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return null;
            }
        };

Может кто-нибудь, пожалуйста, скажите мне, почему это происходит


person HemalHerath    schedule 18.11.2017    source источник
comment
какую версию firebaserecycleradapter вы используете (в градле написано)   -  person Peter Haddad    schedule 18.11.2017
comment
скомпилировать 'com.firebaseui:firebase-ui-database:3.1.0'   -  person HemalHerath    schedule 18.11.2017
comment
В классе firebaserecycleradapter.java нет метода заполнения.   -  person HemalHerath    schedule 18.11.2017
comment
правда отвечу как, в старых версиях можно использовать populateviewholder   -  person Peter Haddad    schedule 18.11.2017


Ответы (1)


Конструктор классов Firebase...Adapter изменился в FirebaseUI версии 3. Учитывая этот запрос:

Query query = FirebaseDatabase.getInstance()
    .getReference()
    .child("users")
    .equalTo(name);

Если вы используете версию 3 или выше, вы используете FirebaseRecyclerOptions:

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

Затем объявите FirebaseRecyclerAdapter:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) {

добавьте переменную options, как указано выше. Это переменная класса FirebaseRecyclerOptions

Затем, чтобы добавить элементы, вы должны использовать onBindViewHolder, так как это последняя версия пользовательского интерфейса firebase:

 @Override
protected void onBindViewHolder(Holder holder, int position, model_class_name model) {
    // Bind the class object to the holder
    // ...
}

Для получения дополнительной информации проверьте это: https://github.com/firebase/FirebaseUI-Android/tree/master/database

person Peter Haddad    schedule 18.11.2017
comment
@HemalHerath хорошо, добавьте переменную (параметры или любое имя, которое вы хотите) в firebaserecycleradapter, у вас этого не было - person Peter Haddad; 18.11.2017
comment
Примечание: над setQuery вам, возможно, придется написать это .setLayout(R.layout.your_layoutrow) - person Peter Haddad; 20.12.2017