为什么我不能使用 populateViewHolder 覆盖方法? [英] Why I cant use the populateViewHolder override method?
问题描述
我尝试在我的 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屋!