根据按钮单击更改Recyclerview的Firebase数据库

时间:2019-04-07 15:19:12

标签: android database firebase android-recyclerview

在我的应用程序中,有一个片段。该片段的顶部有2个按钮,其余部分有一个recyclerview。假设按钮为B1和B2。 我想创建一个系统,在该系统上,单击按钮B1上的recyclerview将基于Firebase的某些数据库DB1获取数据,而单击按钮B2上的recyclerview将基于Firebase的某些数据库DB2获取数据。 即,有2个数据库,基于数据库的数据在单击按钮的单个recyclerview上显示两个。

我所做的是有一个名为button_track的静态全局字符串,该字符串跟踪单击哪个按钮。但这似乎在recyclerview上不起作用。 Recyclerview只是保留DB1,这是从一开始就显示的默认数据库。仅当我在手机recyclerview中重新加载页面时,才会根据字符串值获取数据库。

相关代码如下:

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

}

我想我需要设置一个侦听器,当buttonclick发生更改时,该侦听器可以实时跟踪,因此可以更改要使用的数据库。但是目前我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

好的,尝试使用onClick()中的getAdapter()方法获取回收者视图适配器,然后仅使用notifyDataSetChanged()方法。

例如:

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

如果这没有帮助,请尝试使用用户界面。