【问题标题】:FIrebaseUI( version 0.4.0): firebase recycler Adapter not fetching data from firebase databaseFIrebaseUI(0.4.0 版):firebase 回收器适配器未从 firebase 数据库中获取数据
【发布时间】:2020-01-21 19:29:11
【问题描述】:

我有这个 DataSaveActivty,我需要在回收站视图中填充我的数据,当我运行此代码时,它没有显示错误,也没有卡片,只是一个带有 toast 的空白活动。我找不到任何问题,但为什么没有显示任何内容。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_data_save);
    mReceipt = new RecyclerView(this);
    Intent intent = getIntent();
    if(intent == null) {
        keyValue = null;
    } else {
        //keyValue = intent.getExtras().getString("key");
        keyValue = intent.getStringExtra("key");
        Toast.makeText(DataSaveActivity.this, keyValue, Toast.LENGTH_LONG).show();
    }
    mRef = FirebaseDatabase.getInstance().getReference().child("Bills").child(keyValue);
    mRef.keepSynced(true);
     mReceipt = (RecyclerView)findViewById(R.id.othersRecycler);
    mReceipt.setHasFixedSize(true);
    mReceipt.setLayoutManager(new LinearLayoutManager(this));
@Override
protected void onStart(){
    super.onStart();
    FirebaseRecyclerAdapter<DataModel, ReceiptViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<DataModel, ReceiptViewHolder>
            (DataModel.class, R.layout.reciept_row, ReceiptViewHolder.class, mRef){
        @Override
        protected void populateViewHolder(ReceiptViewHolder viewHolder,DataModel model, int position) {
            viewHolder.setBillNo(model.getBillNo());
            viewHolder.setStoreName(model.getCompany());
            viewHolder.setDate(model.getDate());
            viewHolder.setTime(model.getTime());
            viewHolder.setPhone(model.getPhone());
            viewHolder.setBillTotal(model.getTotal());

        }
    };
    mReceipt.setAdapter(firebaseRecyclerAdapter);
}
public static class ReceiptViewHolder extends RecyclerView.ViewHolder {
    View mView;
    public ReceiptViewHolder(View itemView){
        super(itemView);
        mView = itemView;
    }
    public void setBillNo(String billNo){
        TextView BillNo = (TextView)mView.findViewById(R.id.receiptBillNo);
        BillNo.setText(billNo);
    }
    public void setStoreName(String company){
        TextView StoreName = (TextView)mView.findViewById(R.id.receiptStoreName);
        StoreName.setText(company);
    }
    public void setDate(String date){
        TextView Date = (TextView)mView.findViewById(R.id.receiptDate);
        Date.setText(date);
    }
    public void setTime(String time){
        TextView Time = (TextView)mView.findViewById(R.id.receiptTime);
        Time.setText(time);
    }
    public void setPhone(String phone){
        TextView Phone = (TextView)mView.findViewById(R.id.receiptPhone);
        Phone.setText(phone);
    }
    public void setBillTotal(String total){
        TextView BillTotal = (TextView)mView.findViewById(R.id.receiptTotal);
        BillTotal.setText(total);
    }

}

数据存在于从另一个活动中检索到的子 keyValue 中,然后应该显示此数据。

【问题讨论】:

    标签: java android firebase firebase-realtime-database firebaseui


    【解决方案1】:

    你需要删除这个:

    mReceipt.setHasFixedSize(true);
    

    这样数据就会出现在页面中

    检查一下:

    https://github.com/firebase/FirebaseUI-Android/issues/204

    【讨论】:

    • 可以,但您能解释一下原因吗?
    • 检查编辑中的链接,这是旧版本中的问题,如果您将其删除,则会显示数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2020-12-22
    • 1970-01-01
    • 2021-08-01
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多