我正在根据从数据库中获取数据,然后将数据插入到a中并通过对话框显示它。userIdlistview
我一直在等待的行为是,我将获取用户创建的所有交换,并将它们插入到列表中,以便他可以选择其中一个。但是,只有当他在数据库中只有一个交换时,代码才能正常工作,因为它正常显示。但是,如果他有两个掉期,那么列表中的掉期将乘以两个。
如果是三次,那么数据将重复三次,依此类推。我不知道我的代码中的流程是什么,希望有人可以帮助我解决这个问题。如何删除列表中的重复项?
private void fetchChooseList() {
DatabaseReference shiftSwapDb = FirebaseDatabase.getInstance().getReference().child("swaps").child("shift_swaps");
final List<SwapDetails> swapBodyList = new ArrayList<>();
Collections.reverse(swapBodyList);
shiftProfileAdapter = new ShiftProfileAdapter(ProfileActivityShift.this, R.layout.shift_profile_list_item, swapBodyList);
listView = chooseShiftProfileDialog.findViewById(R.id.listShiftProfileChooseDialog);
listView.setAdapter(shiftProfileAdapter);
shiftSwapDb.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.exists()) {
SwapDetails swapDetails = dataSnapshot.getValue(SwapDetails.class);
if (swapDetails.getSwapperID().equals(fromID)) {
shiftProfileAdapter.add(swapDetails);
}
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(DatabaseError databaseError) { }
});
白衣染霜花
翻阅古今
相关分类