为啥我不能使用 populateViewHolder 覆盖方法?
Posted
技术标签:
【中文标题】为啥我不能使用 populateViewHolder 覆盖方法?【英文标题】:Why I cant use the populateViewHolder override method?为什么我不能使用 populateViewHolder 覆盖方法? 【发布时间】:2018-05-02 01:10:24 【问题描述】:我尝试在我使用过 FirebaseRecylerAdapter 的方法中从 database
检索数据,如下所示
@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
方法,只需给出如下所示的方法
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;
;
谁能告诉我为什么会这样
【问题讨论】:
您使用的是什么版本的 firebaserecycleradapter(在其编写的 gradle 中) 编译'com.firebaseui:firebase-ui-database:3.1.0' firebaserecycleradapter.java 类中没有填充方法 true 我会回答你如何,在旧版本中你可以使用 populateviewholder 【参考方案1】:Firebase...Adapter
类的构造函数在 FirebaseUI 版本 3 中已更改。鉴于此查询:
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("users")
.equalTo(name);
如果您使用的是版本 3 或更高版本,则使用 FirebaseRecyclerOptions
:
FirebaseRecyclerOptions<model_class_name> options =
new FirebaseRecyclerOptions.Builder<model_class_name>()
.setQuery(query, model_class_name.class)
.build();
然后声明一个 FirebaseRecyclerAdapter:
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(options)
如上所述添加变量options
。是FirebaseRecyclerOptions
类的变量
然后要添加项目,您必须使用 onBindViewHolder
,因为它是最新版本的 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
【讨论】:
@HemalHerath 好吧,在 firebaserecycleradapter 中添加一个变量(选项或任何你想要的名称),你没有那个 注意:上面setQuery
你可能要写这个.setLayout(R.layout.your_layoutrow)
以上是关于为啥我不能使用 populateViewHolder 覆盖方法?的主要内容,如果未能解决你的问题,请参考以下文章
我在 FirebaseRecyclerAdapter 类中找不到 populateViewHolder 方法