基本上,我想做的是使用 a并用我的自定义设计FirebaseRecyclerAdapter填充. 较新版本的代码已更改,因此,我尝试实现它但没有奏效。这是我一年前用来编写的代码,它运行良好并填充了我的:RecyclerViewCardViewRecyclerViewFirebaseRecyclerAdapter<DataClass,DataViewHolder> FBRA= new FirebaseRecyclerAdapter<DataClass, DataViewHolder>( DataClass, R.layout.myCardView, DataViewHolder.class, databaseReference ) { @Override protected void populateViewHolder(DataViewHolder viewHolder, DataClass model, int position) { viewHolder.setTitle(model.gettitle()); viewHolder.setDate(model.getDate()); } }; myRecyclerView.setAdapter(FBRA);现在我们必须使用这样的东西,但问题是这段代码没有填充我的recyclerView(我需要在此处进行哪些更改才能recyclerView使用我的 cardView 填充我的?)@Overrideprotected void onStart() { super.onStart(); Query query = FirebaseDatabase.getInstance() .getReference() .child("Official_Services"); FirebaseRecyclerOptions<ServiceClass> options = new FirebaseRecyclerOptions.Builder<ServiceClass>() .setQuery(query, ServiceClass.class) .build(); FirebaseRecyclerAdapter<ServiceClass, ServiceViewHolder> FBRA = new FirebaseRecyclerAdapter<ServiceClass, ServiceViewHolder>(options) { @NonNull @Override public ServiceViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) { View view = LayoutInflater.from(HomeActivity.this).inflate(R.layout.service_card, parent, false); return new ServiceViewHolder(view); } @Override protected void onBindViewHolder(@NonNull ServiceViewHolder holder, int position, @NonNull ServiceClass model) { holder.setServiceName(model.getServiceName()); holder.setServiceCaption(model.getServiceCaption()); } }; mServiceList.setAdapter(FBRA);}这是我的ViewHolder课:public static class ServiceViewHolder extends RecyclerView.ViewHolder { public ServiceViewHolder(View itemView) { super(itemView); View mView = itemView; }
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
为了能够显示来自 Firebase 实时数据库的数据,您需要开始监听更改,为此您应该在onStart()方法中添加以下代码行:
@Override
protected void onStart() {
super.onStart();
FBRA.startListening();
}
要停止监听更改,您需要在onStop()方法中添加以下代码行,如下所示:
@Override
protected void onStop() {
super.onStop();
if(FBRA != null) {
FBRA.stopListening();
}
}
请从这篇文章中查看我的答案,我已经解释了为什么应该删除监听器。
PS也请不要忘记创建FBRA一个全局变量并FirebaseRecyclerAdapter<ServiceClass, ServiceViewHolder>从对象的声明中删除。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
这更像是一个建议。如果你想继续使用旧方法来填充你的recyclerview,即“populateViewHolder”方法而不是新的“onBindViewHolder”方法,只需使用它;
implementation 'com.firebaseui:firebase-ui:1.0.1'
而不是升级的 firebase-ui 版本
添加回答
举报
0/150
提交
取消