getAdapter (). notifyDataSetChanged () не изменяет базу данных для повторного просмотра

1

У меня есть 2 кнопки. По нажатию кнопки я решаю, какую базу данных выбрать для повторного просмотра. Как, например, при нажатии кнопки B1, я установил базу данных DB1 для повторного просмотра. Я использую firebaserecycleradapter. Проблема в том, что getAdapter(). NotifyDataSetChanged() для утилита-ревизора, похоже, не работает с определением FirebaseRecyclerAdapter, а работает с пользователем-заполнителем. Но так как я установил запрос на определение FirebaseRecyclerAdapter, в конце выбираемая база данных не изменяется при нажатии кнопки.

Вот некоторый код:

//global declaration
  FirebaseRecyclerAdapter<HomeBlog, BlogViewHolder> firebaseRecyclerAdapter;

//FirebaseRecyclerAdapter part:


             firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<HomeBlog, BlogViewHolder>(

                    HomeBlog.class,
                    R.layout.profile_row,
                    BlogViewHolder.class,
                    query

//the query is the Firebase database that I want at a time.
//since getAdapter().notifyDataSetChanged() not reloading from here. query remains same.

            )
            {
                @Override
                protected void populateViewHolder(BlogViewHolder viewHolder, HomeBlog model, int position) {


                    final String post_key = getRef(position).getKey();

                    final String postPosition = String.valueOf(position);

//getAdapter().notifyDataSetChanged() seems to load in populateviewholder though.
//this I checked using Toast.



                    viewHolder.setImage(post_key);

                    viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            //other code


                        }
                    });

                }
            };

            mBlogList.setAdapter(firebaseRecyclerAdapter);




//one button click example:
 grid.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //changing the query

                query = mDatabase.orderByChild("UserId").equalTo(userId);
                mBlogList.setAdapter(firebaseRecyclerAdapter);
                mBlogList.getAdapter().notifyDataSetChanged();

            }
        });

Я хочу убедиться, что часть определения firebaserecycleradapter также загружается, когда я вызываю getAdapter(). NotifyDataSetChanged(). Потому что он содержит запрос. Есть какой-то подход к этому? Или я делаю совершенно неправильный процесс?

Теги:
firebase
recycler-adapter
android-recyclerview

1 ответ

0

После вызова setAdapter() вы можете использовать notifyDataSetChanged() на этом адаптере. Пример:

mBlogList.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.notifyDataSetChanged();

Тогда ваши данные будут обновлены.

  • 0
    Нет. не работал.
  • 0
    Вы хотите по нажатию кнопки для обновления адаптера?
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню