Ich habe eine harte Zeit auf, wie diese Recycler-Ansicht zu lösen, die die Ansicht in meinem Fragment neu zu füllen, wenn Änderungen in meiner Datenbank sind. hier ist mein Fragment für meine Recycler Ansicht ..Daten von Firebase - Android-Recycler-Ansicht Repopulation
fragment.java @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_reviews, container, false);
Toast.makeText(getContext(), "this is a review", Toast.LENGTH_SHORT).show();
databaseReference = FirebaseDatabase.getInstance().getReference();
firebaseAuth = FirebaseAuth.getInstance();
firebaseUser = firebaseAuth.getCurrentUser();
//RETRIEVE DATAS
loadEntries();
drAdapter = new reviewAdapter(review);
recyclerView = (RecyclerView) v.findViewById(R.id.reviewRecyvlerView);
rvLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(rvLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(drAdapter);
return v;
}
und in meinem loadentries()
private void loadEntries(){
review = new ArrayList<>();
dbReference = FirebaseDatabase.getInstance().getReference().child("Review");
dbReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot mySnapshot : dataSnapshot.getChildren()){
// System.out.println(dataSnapshot.getChildrenCount());
String userID = mySnapshot.getKey();
Review reviews = mySnapshot.getValue(Review.class);
String fname = (String) dataSnapshot.child(userID).child("firstname").getValue();
String lname = (String) dataSnapshot.child(userID).child("lastname").getValue();
review.setFName(fname);
review.setLName(lname);
review.add(reviews);
}
drAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
Ich denke, es wegen meiner review.add ist (Reviews), die das Fragment weiter füllen (Redundanz). Die Recycler-Ansicht fügt eine weitere Ansicht hinzu, wenn sich Änderungen in meiner Datenbank ergeben, und ich weiß nicht, wie ich mit dieser Redundanz umgehen soll.
Alle alternativen Lösungen oder Vorschläge würden so sehr geschätzt werden :). bereit zu lernen :). Vielen Dank.
Es gibt Versuch zurück, virtuelles Methon auf dem öffentlichen int aufzurufen getItemCount() {return mReviews.size();} danke übrigens, geschätzt :). – KoralReef