微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – FirebaseRecyclerAdapter – 如何在创建后更改数据库查询

问题

我有一个通过FirebaseRecyclerAdapter在android显示的项目列表.我创建了这个适配器,在所有项目列表上都有一个数据库引用(让我们说“帖子”).帖子还显示类别,如果用户点击类别,我想更新列表以仅显示该类别的项目.

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

其他想法:
在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 !!! ///

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

解决方法:

单击发生时,尝试在适配器上调用.notifyDatasetChanged().使用新的firebase数据更改数据集后.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐