Firebaseを照会し、リサイクラーアダプターに照会のDataSnapshotの条件付きデータを取り込もうとしています。私はpopulate関数をif文の中に入れてみましたが、必要なデータは正しくログに記録されていましたが、代わりにリサイクラビューは検索していたノード(私が始めたメインクエリ)からすべてを返します。 "if"ステートメントに当てはまる項目を埋める方法についての提案はありますか?ありがとうございました!あなたはuはこれを使用することができます任意の特定のノードを抽出したい場合はAndroid:Firebase RecyclerViewで条件付きDataSnapshot値を使用するには?
rootRef = FirebaseDatabase.getInstance().getReference();
//below is the node i query
mAlbumQuery = rootRef.child(Constants.FIREBASE_CHILD_ALBUMS).orderByChild("genres");
mAlbumQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot reco : dataSnapshot.getChildren()) {
if (reco.getValue().toString().contains(mRecommendation.getGenre())) {
//below returns the items i want
Log.d("is this correct", reco.getValue().toString());
//below returns everything in the original query
//how to populate only items that match the above?
mAdapter = new FirebaseRecyclerAdapter<Album, AlbumsViewHolder>(
Album.class,
R.layout.album_cards,
AlbumsViewHolder.class,
mAlbumQuery) {
@Override
public void populateViewHolder(AlbumsViewHolder holder, Album album, int position) {
holder.bindView(album.getImage(), album.getTitle());
if (!album.getGenres().contains(mRecommendation.getGenre())) {
//added as a hypothetical... should i have something in here?
}
}
};
mAlbumsRecycler.setAdapter(mAdapter);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return view;
}
これはどのようにしてリサイクルビューで使用できますか? – DarkKnightSDS