java - 如何在回收站 View 中只获取我想要的项目

标签 java android firebase firebase-realtime-database android-recyclerview

我有一个 recyclerview 我想在回收站 View 中显示帖子..我的问题是我只想显示数据库中 popularlist="true" 的帖子...有照片我不想显示 enter image description here 请看一下数据库结构..在这里 popularlist="false"默认情况下 所有照片 我希望回收站 View 检查 popularlist="true" 它需要在回收站 View 中显示,如果它的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)

    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;
}
}

在我得到照片的 fragment 中,我在回收站 View 所在的地方添加了这段代码

       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()));
                        }
                    }
                }

它显示正文,但我没有得到图像路径和我在此处添加到 fragment 中的其他内容

最佳答案

您需要添加一个查询:

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

关于java - 如何在回收站 View 中只获取我想要的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51380256/

相关文章:

java - JDBC 将多个子表连接到父表,我如何知道结果行来自哪个表?

java - 是否可以在 Windows 中编写忽略所有形式的 SIGTERM 的批处理 [或其他可执行] 应用程序

java - ANTLR - 语法和树语法之间的 token 枚举不匹配

android - 由于Android 6.0录音问题

android - 如何在Android设备上找出NFC堆栈(芯片) "NXP vs Broadcom"

android - 基于 APK 签名限制 FCM 主题订阅

java - 使用java流,将两个具有相同键但不同值的映射合并到一个元组中?

android - SearchView 结果列表宽度

Javascript Promise 和 Firebase

php - FCM 成功但 android 设备未收到通知