Data is getting added into list instead of getting updated in addChildEventListener's onChildChanged()

醉酒当歌 提交于 2019-11-28 14:39:44

You can store keys in order to update it e.g:

 ArrayList<String> mKeys = new ArrayList<String>();  

databaseReference.child("uListings").child(AccessToken.getCurrentAccessToken().getUserId()).addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                        // recyclerview gets populated here

                        String key = dataSnapshot.getKey();
                        mKeys.add(key);
                        adapter.notifyDataSetChanged();

                    }

                    @Override
                    public void onChildChanged(DataSnapshot dataSnapshot, String s) {
                        if (dataSnapshot.getValue() != null) {
                             .......
                             //now we get the index to update specific value
                              String key = dataSnapshot.getKey();
                              int index = mKeys.indexOf(key);
                              list.set(index, pHandler);

                              adapter.notifyDataSetChanged();
                              ....
                    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!