Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想刷新数据来自Firebase的回收适配器?_Android_Android Recyclerview_Swipe - Fatal编程技术网

Android 我想刷新数据来自Firebase的回收适配器?

Android 我想刷新数据来自Firebase的回收适配器?,android,android-recyclerview,swipe,Android,Android Recyclerview,Swipe,我有ArrayList我正在成功地将数据设置到适配器我想添加滑动以刷新适配器以检查firebase中的任何新数据以更新回收器 firebaseDatabase=FirebaseDatabase.getInstance(); getFirebaseData(); } public void getFirebaseData() { databaseReference=firebaseDatabase.getReference("recyclerview"); da

我有ArrayList我正在成功地将数据设置到适配器我想添加滑动以刷新适配器以检查firebase中的任何新数据以更新回收器

    firebaseDatabase=FirebaseDatabase.getInstance();
    getFirebaseData();

}

public void getFirebaseData()
{
    databaseReference=firebaseDatabase.getReference("recyclerview");
    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) 
        {
            itemsModel=new ItemsModel();
            itemsModel=dataSnapshot.getValue(ItemsModel.class);
            itemsModelList.add(itemsModel);
            recyclerView.setAdapter(myAdapter);
        }

在OnCreate方法上只应调用一次:recyclerView.setAdapter(myAdapter)

然后,当添加一个子对象时,当您在数据库中侦听ref时,将调用onchildaded方法,并在其中使用以下代码:

itemsModel=new ItemsModel();
        itemsModel=dataSnapshot.getValue(ItemsModel.class);
        itemsModelList.add(itemsModel);
        myAdapter.notifydatasetchanged();

然后,每次添加一个子项时,它都会显示在屏幕上。

您只需在OnCreate方法上调用一次:recyclerView.setAdapter(myAdapter)

然后,当添加一个子对象时,当您在数据库中侦听ref时,将调用onchildaded方法,并在其中使用以下代码:

itemsModel=new ItemsModel();
        itemsModel=dataSnapshot.getValue(ItemsModel.class);
        itemsModelList.add(itemsModel);
        myAdapter.notifydatasetchanged();

然后,每次添加一个子项时,它都会显示在您的屏幕上。

查看RecyclerView.Adapter。根据您打算执行的操作,有notifyItemInserted、notifyItemChanged等方法。如果数据集发生更改,还有一种DiffUtil方法可以用最少的更改和动画来更新recyclerview。阅读。查看下面的链接。它将帮助你实现你想要的。看一下RecyclerView.Adapter。根据您打算执行的操作,有notifyItemInserted、notifyItemChanged等方法。如果数据集发生更改,还有一种DiffUtil方法可以用最少的更改和动画来更新recyclerview。阅读。查看下面的链接。它将帮助你实现你想要的。*您不需要刷新数据,因为您的用户一直在收听数据。*您不需要刷新数据,因为您的用户一直在收听数据。