[英]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.