我有一个recyclerview,我想在recycler视图中显示帖子。我的问题是我想仅在数据库中显示 popularlist =“ true” 的帖子...有照片我不想显示的 请查看数据库结构。在这里,所有照片均默认为 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()));
}
}
}
它显示了身体,但我没有得到图像路径和我在此处添加的片段中的其他东西
答案 0 :(得分:1)
您需要添加查询:
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