【发布时间】:2017-11-26 09:14:22
【问题描述】:
我正在遍历 firebase 中的列表,它的工作方式类似于 arrayList 我使用 for 循环来迭代 chlidren,就像在列表中完成一样,我让它们用这段代码随机迭代
FirebaseUtils.getMeetPeopleListCityReference(ciudadX).orderByKey().addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(final DataSnapshot dataSnapshot) {
if (dataSnapshot != null) {
Random random = new Random();
final int index = random.nextInt((int) dataSnapshot.getChildrenCount());
int count = 0;
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
if (count == index) {
final MeetPeopleList mee = snapshot.getValue(MeetPeopleList.class);
if (mee.getIDentificador().equals(firebaseUser.getUid())) {
// nothing, are you
} else {
testData.add(mee);
adapter.notifyDataSetChanged();
return;
}
}
count++;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但这是重要的代码 它的作用是随机迭代,问题出在这里
我需要它来遍历列表,不要重复将列出的对象
我举个例子: 代码通过按下一个按钮来工作,按下它会显示整个项目列表,屏幕上的一个随机项目,但再次单击有时会显示与之前显示的相同,我不需要显示已经显示的那个对象
Random random = new Random();
final int index = random.nextInt((int) dataSnapshot.getChildrenCount());
int count = 0;
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
if (count == index) {
final MeetPeopleList mee = snapshot.getValue(MeetPeopleList.class);
if (mee.getIDentificador().equals(firebaseUser.getUid())) {
// nothing, are you
} else {
testData.add(mee);
adapter.notifyDataSetChanged();
return;
}
}
count++;
}
【问题讨论】:
标签: android for-loop firebase arraylist firebase-realtime-database