亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Android 3.1 及更高版本中實現 Firebase Recycler

如何在 Android 3.1 及更高版本中實現 Firebase Recycler

拉莫斯之舞 2022-07-20 19:39:28
基本上,我想做的是使用 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>從對象的聲明中刪除。


查看完整回答
反對 回復 2022-07-20
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

這更像是一個建議。如果你想繼續使用舊方法來填充你的recyclerview,即“populateViewHolder”方法而不是新的“onBindViewHolder”方法,只需使用它;

implementation 'com.firebaseui:firebase-ui:1.0.1'

而不是升級的 firebase-ui 版本


查看完整回答
反對 回復 2022-07-20
  • 2 回答
  • 0 關注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號