我有一个recyclerview,我想在回收者视图中显示帖子。我的问题是我只想在数据库中仅显示popularlist =“ true”的帖子...有些照片我不想显示
请查看数据库结构..over这里,默认情况下,所有照片默认为popularlist =“ false”,我希望回收者视图检查是否需要在回收者视图中显示popularlist =“ true”,如果它的false不应该显示照片....任何人都可以告诉我该怎么做...
@Override
public int getItemViewType ( int position ) {
int viewType;
if (moviesList.get(position).getType_post().contains("Photo") ) {
viewType = IMAGE_TYPE;
} else if(moviesList.get(position).getType_post().contains("Video")){
viewType = VIDEO_TYPE;
}
return viewType;
}
我用这段代码检查照片或视频...我不知道过滤
我尝试过的
我在下面创建了一个接口作为listviewmodel
interface ListViewModel {
int VIEW_TYPE_PHOTO = 1;
int VIEW_TYPE_VIDEO = 2;
int getViewType();
}
并创建了两个模型类,分别称为photoviewmodel和videoviewmodel,它们扩展了listviewmodel
class PhotoViewModel implements ListViewModel{
String image_path;
public PhotoViewModel(String image_path) {
this.image_path = image_path;
}
@Override
public int getViewType() {
return VIEW_TYPE_VIDEO;
}
}
在获取照片的片段中,我在回收者视图所在的位置添加了此代码
List<ListViewModel> listViewModels = new ArrayList<>();
for (Photo photo : photos) {
if(photo.getPopularlist().contains("true")){
if(photo.getType_post().equals("Photo")){
List<PhotoViewModel> pho = new ArrayList<>();
PhotoViewModel p = new PhotoViewModel();
p.setImagePath(photo.getImage_path());
pho.add(p);
listViewModels.add(new PhotoViewModel(photo.getImage_path(),photo.getDescription(),photo.getDate_created()));
// Log.d(TAG, "onDataChange: alphs"+photoViewModel1.getImagePath());
}
if(photo.getType_post().equals("Video")){
listViewModels.add(new VideoViewModel(photo.getImage_path()));
}
}
}
它显示身体,但我没有得到图像路径和我在此处添加的片段中的其他内容
最佳答案
您需要添加一个查询:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference();
Query query=ref.orderByChild("popularlist").equalTo(true);
然后,您将能够检索仅具有
popularlist=true
的数据https://firebase.google.com/docs/reference/android/com/google/firebase/database/Query