gpt4 book ai didi

java - 为什么每次我点击另一个 fragment 时,从 firebase 检索的数据都会增加?

转载 作者:行者123 更新时间:2023-12-02 01:11:00 25 4
gpt4 key购买 nike

在历史 fragment 中,当我单击其他 fragment 然后再次转到历史记录时,历史列表会以相同的数据不断增加。我只想让它显示一次。下面是我为历史 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);

我希望 ListView 仅显示输出一次。但我想要的是多次使用相同的数据。 enter image description here

最佳答案

我建议在执行新数据之前先清除数组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);

现在,由于我们删除了重复项,您可以再次设置适配器

关于java - 为什么每次我点击另一个 fragment 时,从 firebase 检索的数据都会增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57684856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com