Изменение базы данных Firebase для Recyclerview на основе нажатия кнопки - PullRequest
0 голосов
/ 07 апреля 2019

В моем приложении есть фрагмент. Фрагмент имеет 2 кнопки сверху, а в остальной части есть обзор переработчика. Скажем, кнопки B1 и B2. Я хочу создать систему, в которой по нажатию кнопки B1 представление переработчика получит данные, основанные на некоторой базе данных DB1 из Firebase, а по нажатию кнопки B2 представление переработчика получит данные, основанные на некоторой базе данных DB2 из Firebase. То есть, есть две базы данных, и две данные, основанные на базах данных, будут отображаться в одном обзоре переработчика на основе нажатия кнопки.

То, что я сделал, это статическая глобальная строка с именем button_track, которая отслеживает, какая кнопка нажата. Но, похоже, это не работает в обзоре переработчиков. Recyclerview просто содержит DB1, который является базой данных по умолчанию, которая будет показана с самого начала. Только когда я перезагружаю страницу в моем телефоне, утилита повторного просмотра берет базу данных на основе строкового значения.

Соответствующий код выглядит следующим образом:

static String button_track ="b1";

//other code


//in onViewCreated

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

button_track ="b1";

}

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

button_track ="b2";

}


//in populateviewholder

if(button_track .equals("b1"))
{
//set db1 as the database for the Recyclerview

}

if(button_track .equals("b2"))
{
//set db2 as the database for the Recyclerview

}

Полагаю, мне нужно настроить прослушиватель, который может отслеживать в реальном времени при изменении нажатия кнопки, и, следовательно, он может изменить используемую базу данных. Но в настоящее время я понятия не имею, как это сделать.

1 Ответ

1 голос
/ 07 апреля 2019

Хорошо, попробуйте получить адаптер представления переработчика с помощью метода getAdapter () в onClick (), а затем просто пользовательский метод notifyDataSetChanged ().

Например:

b2.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               recyclerView.getAdapter().notifyDataSetChanged();
           }

Если это не помогло, попробуйте пользовательский интерфейс.

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