В моем приложении есть фрагмент. Фрагмент имеет 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
}
Полагаю, мне нужно настроить прослушиватель, который может отслеживать в реальном времени при изменении нажатия кнопки, и, следовательно, он может изменить используемую базу данных. Но в настоящее время я понятия не имею, как это сделать.