要解决此问题,请移动以下代码行:
PatientSelectionAdapter adapter= new PatientSelectionAdapter(getContext(),name,sicks,hastauid);rv.setAdapter(adapter);rv.setLayoutManager(new LinearLayoutManager(getContext()));
在第二种
onDataChange()方法中,如下所示:
myref.child("users").child(addingpatient.getUserId()).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.exists()) { Users patient = dataSnapshot.getValue(Users.class); name.add(patient.getName()+" "+patient.getSurname()); sicks.add(patient.getSicks()); patientuid.add(patient.getUserId()); } PatientSelectionAdapter adapter= new PatientSelectionAdapter(getContext(),name,sicks,hastauid); rv.setAdapter(adapter); rv.setLayoutManager(new LinearLayoutManager(getContext())); } @Override public void onCancelled(DatabaseError error) {}});发生这种情况是因为
onDataChange()具有异步行为。请在这里查看 模式详细信息。



