FirebaseRecyclerAdapter-创建后如何更改数据库查询

Dav*_*deN 5 android firebase firebase-realtime-database firebaseui

问题

我有一个通过FirebaseRecyclerAdapter在android中显示的项目的列表。我使用所有项目列表上的数据库引用创建此适配器(假设为“ posts”)。该帖子还会显示类别,如果用户单击类别,我想更新列表以仅显示该类别上的项目。

我尝试不起作用的解决方案我 在“类别”文本视图上放置了一个单击侦听器,当用户单击它时,我尝试使用新的数据库查询实例化一个新适配器,但是它不起作用。

其他想法:在adpater之外执行操作:创建一个新的Intent以重新启动该片段,并使用新的查询创建一个新的适配器

问题 有人遇到过这样的情况吗?在用户单击时,您想要过滤由adpater检索到的原始项目列表?最好的解决方案是什么?

细节

protected void populateViewHolder(final PostViewHolder viewHolder, final Post post, final int position) {


    /* Set the post text, author and category */
    viewHolder.postText.setText(post.getText());
    viewHolder.postAuthor.setText(post.getAuthor());
    viewHolder.postCategory.setText(post.getCategory());

    /* Set a listener on category so that 
      I refresh data with only that category */
    viewHolder.quoteCategory.setOnClickListener(new View.OnClickListener() {

        Post selectedPost = getItem(position);

        @Override
        public void onClick(View v) {

            String category = selectedPost.getCategory();

            // !!!! NOW I HAVE TO CHANGE DATA SET !!! ///
Run Code Online (Sandbox Code Playgroud)

我想现在我可以使用带有正确Db参考的新适配器创建新的Fragment ...但这是最好的方法吗?有没有一种方法可以在传递另一个查询的填充视图中使用相同的Adapater?

Jos*_*bel 1

.notifyDatasetChanged()当点击发生时尝试调用您的适配器。使用新的 firebase 数据更改数据集后。