firebaseのリストを反復処理していますが、arrayListのように機能します forループを使用して、リスト内で実行されるようにchlidrensを繰り返します。私は彼らがランダムにこのコード既にarrayListに渡された項目をスキップする方法
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) {
}
});
で繰り返してきた。しかし、これは、それがランダムに反復し、ここで私はそれがリストを反復処理する必要がある問題
、繰り返さないでくださいされない重要なコード です表示されるオブジェクト
例を設定します: ボタンを押すとコードが機能し、アイテムのリスト全体、画面上のランダムな項目が表示されますが、再度クリックすると以前と同じように表示されることがあります。そのオブジェクトを表示する必要はありませんそれはすでに、あなたのOnDataChange
店内Map<String, Boolean>
のようなデータ構造での子供のキーを
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++;
}
私はそれをどのように実装するのか非常によく分かりませんが、あなたが私をうまく説明するのに大いに役立つでしょう –