firebaserecycleradapter() 不能应用于 FirebaseRecyclerAdapter

新手上路,请多包涵

有人可以告诉该特定行中的错误是什么。

这是图像

这是显示的错误消息。

错误信息

 package com.example.souravkumar.sqaurewallpapers;

import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.squareup.picasso.Picasso;

/**
 * Created by Sourav Kumar on 11/3/2017.
 */

public class popular extends AppCompatActivity {

    private RecyclerView recyclerView;
    private DatabaseReference myRef;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        myRef = FirebaseDatabase.getInstance().getReference();
        FirebaseRecyclerAdapter<image_details, BlogViewHolder> adapter = new FirebaseRecyclerAdapter<image_details, BlogViewHolder>(
                image_details.class,
                R.layout.individual_row,

                myRef) {
            @Override
            protected void onBindViewHolder(BlogViewHolder holder, int position, image_details model) {
                holder.setDate(model.getDate());
                holder.setUrl(model.getUrl());
            }

            @Override
            public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return null;
            }
        };

        recyclerView.setAdapter(adapter);

    }

    public static  class BlogViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        ImageView imageView;
        public BlogViewHolder(View itemView) {
            super(itemView);
            textView = (TextView)itemView.findViewById(R.id.date);
            imageView = (ImageView)itemView.findViewById(R.id.imageView);
        }

        public void setDate(Long date) {
            textView.setText(date.toString());
        }

        public void setUrl(String url) {
            Picasso.with(itemView.getContext())
                    .load(url)
                    .resize(50, 50)
                    .centerCrop()
                    .into(imageView);
        }
    }
}

链接到整个代码

原文由 Sourav Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

FirebaseUI 的最新版本 (3.x) 实现了与以前版本不同的初始化方法 FirebaseRecyclerAdapter 。从 使用 FirebaseRecyclerAdapter 文档

首先,通过构建 FirebaseRecyclerOptions 配置适配器。在这种情况下,我们将继续我们的聊天示例:

>   FirebaseRecyclerOptions<Chat> options =
>                 new FirebaseRecyclerOptions.Builder<Chat>()
>                         .setQuery(query, Chat.class)
>                         .build();
>
> ```
>
> 接下来创建 `FirebaseRecyclerAdapter` 对象。您应该已经有一个 `ViewHolder` 子类来显示每个项目。

因此,对于您的示例,您需要执行类似于以下操作的操作:

FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(myRef, image_details.class) .build();

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter(options) { @Override public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.individual_row, parent, false);

    return new BlogViewHolder(view);
}

@Override
protected void onBindViewHolder(BlogViewHolder holder, int position, image_details model) {
    // Bind the image_details object to the BlogViewHolder
    // ...
}

};

”`

最后, FirebaseRecyclerAdapter 使用事件侦听器来监视对 Firebase 查询的更改。要开始侦听数据,请调用 adapter.startListening()adapter.stopListening() 停止侦听器。建议分别在 onStart()onStop() 中调用它们。有关这方面的更多详细信息,请参阅 FirebaseRecyclerAdapter 生命周期文档

原文由 Grimthorr 发布,翻译遵循 CC BY-SA 4.0 许可协议

您错过了启动活动的方法。在 onStart() 方法中添加:

 firebaseRecyclerAdapter.startListening();

原文由 Ketan Choyal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题