[英]Retrieve Data from Firebase to a RecyclerView Embedded on Fragment
[英]Why the data retrieve from firebase increase everytime I click on another fragment?
在“歷史記錄”片段中,當我單擊其他片段然后再次轉到歷史記錄時,歷史記錄列表會隨着相同的數據而不斷增加。 我只希望它顯示一次。 以下是我為“歷史記錄”片段執行的代碼。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_history, container, false);
ref = FirebaseDatabase.getInstance().getReference().child("Users").child("1234").child("Feedback");
listViewName = (ListView) view.findViewById(R.id.listView);
arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, arrayList);
listViewName.setAdapter(arrayAdapter);
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
arrayList.add(dataSnapshot.getValue(SurveyDetails.class).getActivity());
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
SurveyDetails surveyDetails = dataSnapshot.getValue(SurveyDetails.class);
String activity = surveyDetails.getActivity();
arrayList.remove(activity);
arrayAdapter.notifyDataSetChanged();
listViewName.setAdapter(arrayAdapter);
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
ref.addChildEventListener(childEventListener);
我建議先清除數組,然后再執行新數據arraList.Clear()
此代碼將刪除listView中的重復值
HashSet hs = new HashSet();
hs.addAll(demoArrayList); // demoArrayList= name of arrayList from which u want
to remove duplicates
demoArrayList.clear();
demoArrayList.addAll(hs);
現在,由於我們刪除了重復項,因此您可以再次設置適配器
設置適配器之前,只需清除陣列列表即可。
arrayList.clear(); // Add this line.
arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, arrayList);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.