使用Firebase的RecyclerAdapter - populateViewHolder在哪里? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在尝试使用FirebaseRecyclerAdapter查看我的Android应用程序上的数据库信息,但我期待populateViewHolder方法,我正在让另外两个人弹出。代码如下:

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(

                    NoteModel.class,
                    R.layout.single_note_layout,
                    NoteViewHolder.class,
                    fNotesDatabase

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

                @Override
                protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NoteModel model) {

                }
            };

}

使用FirebaseReccylerAdapater后,公共NoteViewHolder和受保护的void onBindViewHolder不会像过去那样出现。我在期待:

protected void populateViewHolder ( NoteViewHolder viewHolder, NoteModel model, int position) {
}

任何人都有任何想法,为什么这不再可用?我不知道如何完成代码,因为我之前没有看到过这样的代码。我需要添加....

String noteId = getRef(position).getKey();

....但我不知道在哪里。

提前致谢。

android firebase firebaseui
1个回答
2
投票

FirebaseUI migration guide是一个很好的起点。基本上,你会想做这样的事情:

FirebaseRecyclerOptions<NoteModel> options = new FirebaseRecyclerOptions.Builder<>()
        .setQuery(fNotesDatabase, NoteModel.class)
        .build();

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter =
        new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(options) {
            @Override
            public NoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return new NoteViewHolder(LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.single_note_layout, parent, false));
            }

            @Override
            protected void onBindViewHolder(@NonNull NoteViewHolder holder,
                                            int position,
                                            @NonNull NoteModel model) {
                String key = getSnapshots().getSnapshot(position).getKey();
                holder.bind(...);
            }
        };
© www.soinside.com 2019 - 2024. All rights reserved.