1
私のデータベースに変更があった場合、私のフラグメントのビューを再作成し続けるこのリサイクルビューの解決方法には苦労しています。ここに私のリサイクルビューのための私のフラグメントは、私は(それが原因で私のreview.addのだと思うFirebaseのデータ - アンドロイドリサイクラのビュー再作成
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;
}
と私の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) {
}
});
}
..ですレビュー)を提供します(冗長性)。私のデータベースに変更があり、この冗長性をどのように処理するのかわからない場合、リサイクラビューは別のビューを追加します。
いずれの代替ソリューションまたは提案も非常に高く評価されます:)。喜んで学ぶ:)。どうもありがとうございました。あなたはループのため、その前にonDataChange()
メソッド内でごreview = new ArrayList<>();
の宣言を移動する必要があり
public int getItemCount(){return mReviews.size();} ありがとう、ありがとう:ありがとうございました。 – KoralReef