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数据更改数据集后.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...