Как преобразовать метод старого адаптера Firebase в метод нового адаптера? - PullRequest
0 голосов
/ 20 января 2020

На главном экране моего приложения я пытался создать вид поиска с правкой текста. Я сделал вид рециркулятора ниже вида поиска. Мое приложение - приложение musi c. Итак, я хочу создать функцию, например, когда пользователь ищет любую песню из firebase, тогда имя песни и исполнитель песни должны отображаться в представлении переработчика. Итак, я прочитал код для выполнения этой конкретной работы. Но я столкнулся с проблемой, как в моем коде был метод FirebaseRecyclerAdapter, который использовался для получения значений из firebase из моего поискового представления, но моя проблема в том, что это был старый populateViewHolder метод, и я хочу преобразовать этот метод в новый on createView и onBindViewHolderMethod но я не знаю как? Поэтому, пожалуйста, помогите мне изменить этот метод, и я хочу выполнить ту же работу в режиме поиска. Я не хочу менять свои зависимости от Firebase в моем gradle. Итак, в заключение я хочу преобразовать приведенный ниже код в новый метод FirebaseRecyclerAdapter.

Вот мой код: -

 Query firebaseSearchQuery = mUserDatabase.orderByChild("name").startAt(searchText).endAt(searchText + "\uf8ff");

        FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(

                Users.class,
                R.layout.list_layout,
                UsersViewHolder.class,
                firebaseSearchQuery

        ) {
            @Override
            protected void populateViewHolder(UsersViewHolder viewHolder, Users model, int position) {


                viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());

            }
        };

        mResultList.setAdapter(firebaseRecyclerAdapter);

Поэтому, пожалуйста, помогите мне, если у вас есть какое-либо решение.

1 Ответ

0 голосов
/ 20 января 2020

Как показывает документация FirebaseUI , вы сначала инициализируете объект FirebaseRecyclerOptions запросом и классом:

FirebaseRecyclerOptions<Users> options =
        new FirebaseRecyclerOptions.Builder<Users>()
                .setQuery(firebaseSearchQuery, Users.class)
                .build();

И затем создаете FirebaseRecyclerAdapter с этим options объект и ваш ViewHolder класс:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(options) {
    @Override
    public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_layout, parent, false);

        return new UsersViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(UsersViewHolder holder, int position, Users model) {
        viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());
    }
};
mResultList.setAdapter(firebaseRecyclerAdapter);

А затем вы вызываете startListening() и stopListening() в соответствующих событиях жизненного цикла активности .

...