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

У меня 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 (). Потому что он содержит запрос. Есть какой-то подход к этому? Или я делаю совершенно неправильный процесс?

1 Ответ

0 голосов
/ 08 апреля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...