为什么我不能使用 populateViewHolder 覆盖方法? [英] Why I cant use the populateViewHolder override method?

查看:32
本文介绍了为什么我不能使用 populateViewHolder 覆盖方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在我的 fragment onViewCreated 方法中从 database 检索数据,我使用了 FirebaseRecylerAdapter,如下所示

I'm try to retrieve datafrom database in my fragment onViewCreated method I have used FirebaseRecylerAdapter like below

@Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder> firebaseRecyclerAdapter;
    }

    public static class AllUsersViewHolder extends RecyclerView.ViewHolder {

        View view;

        public AllUsersViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }
    }

当我使用 firebaseRecyclerAdapter = new FirebaseRecyclerAdapter 时,它不会给我 populateViewHolder 方法只给如下方法

when I use firebaseRecyclerAdapter = new FirebaseRecyclerAdapter it wont give me the populateViewHolder method just give method like below

FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder>() {
            @Override
            protected void onBindViewHolder(AllUsersViewHolder holder, int position, AllUsers model) {

            }

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

谁能告诉我为什么会这样

Can someone please tell me why this is happening

推荐答案

Firebase...Adapter 类的构造函数在 FirebaseUI 版本 3 中已更改.鉴于此查询:

The constructor of the Firebase...Adapter classes has changed in FirebaseUI version 3. Given this query:

Query query = FirebaseDatabase.getInstance()
    .getReference()
    .child("users")
    .equalTo(name);

如果您使用的是版本 3 或更高版本,则使用 FirebaseRecyclerOptions:

If you're using a version 3 or higher, you use FirebaseRecyclerOptions:

 FirebaseRecyclerOptions<model_class_name> options =
            new FirebaseRecyclerOptions.Builder<model_class_name>()
                    .setQuery(query, model_class_name.class)
                    .build();

然后声明一个 FirebaseRecyclerAdapter:

Then declare a FirebaseRecyclerAdapter:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(options) {

添加变量 options 如上.它是 FirebaseRecyclerOptions

add the variable options as above. It is the variable of the class FirebaseRecyclerOptions

然后要添加项目,您必须使用 onBindViewHolder,因为它是最新版本的 firebase ui:

Then to add items you have to use onBindViewHolder since its the latest version of firebase ui:

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

有关更多信息,请查看:https://github.com/firebase/FirebaseUI-Android/tree/master/database

For more info check this: https://github.com/firebase/FirebaseUI-Android/tree/master/database

这篇关于为什么我不能使用 populateViewHolder 覆盖方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆