在我的应用程序中,有一个片段。该片段的顶部有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发生更改时,该侦听器可以实时跟踪,因此可以更改要使用的数据库。但是目前我不知道该怎么做。
答案 0 :(得分:1)
好的,尝试使用onClick()中的getAdapter()方法获取回收者视图适配器,然后仅使用notifyDataSetChanged()方法。
例如:
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
recyclerView.getAdapter().notifyDataSetChanged();
}
如果这没有帮助,请尝试使用用户界面。