基本上,我想做的是使用 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
提交
取消