Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FIrebaseUI(版本0.4.0):firebase回收器适配器未从firebase数据库获取数据_Java_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Java FIrebaseUI(版本0.4.0):firebase回收器适配器未从firebase数据库获取数据

Java FIrebaseUI(版本0.4.0):firebase回收器适配器未从firebase数据库获取数据,java,android,firebase,firebase-realtime-database,firebaseui,Java,Android,Firebase,Firebase Realtime Database,Firebaseui,我有一个DataSaveActivty,我需要在recycler视图中填充我的数据,当我运行此代码时,它不会显示任何错误和卡片,只是一个带祝酒词的空白活动。我没有发现任何错误,但为什么它没有显示任何内容 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data_sav

我有一个DataSaveActivty,我需要在recycler视图中填充我的数据,当我运行此代码时,它不会显示任何错误和卡片,只是一个带祝酒词的空白活动。我没有发现任何错误,但为什么它没有显示任何内容

@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);
    }

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u data\u save);
mReceipt=新回收视图(本);
Intent=getIntent();
if(intent==null){
keyValue=null;
}否则{
//keyValue=intent.getExtras().getString(“键”);
keyValue=intent.getStringExtra(“键”);
Toast.makeText(DataSaveActivity.this,keyValue,Toast.LENGTH_LONG.show();
}
mRef=FirebaseDatabase.getInstance().getReference().child(“账单”).child(keyValue);
mRef.keepSynced(true);
mReceipt=(RecyclerView)findViewById(R.id.othersRecycler);
mReceipt.setHasFixedSize(真);
mReceipt.setLayoutManager(新直线布局经理(本));
@凌驾
受保护的void onStart(){
super.onStart();
FirebaseRecyclerAdapter FirebaseRecyclerAdapter=新的FirebaseRecyclerAdapter
(DataModel.class,R.layout.Receipt_行,ReceiptViewHolder.class,mRef){
@凌驾
受保护的void populateViewHolder(ReceiptViewHolder viewHolder、DataModel模型、int位置){
viewHolder.setBillNo(model.getBillNo());
viewHolder.setStoreName(model.getCompany());
setDate(model.getDate());
setTime(model.getTime());
setPhone(model.getPhone());
viewHolder.setBillTotal(model.getTotal());
}
};
mReceipt.setAdapter(firebaseRecyclerAdapter);
}
公共静态类ReceiptViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共收据视图持有者(查看项目视图){
超级(项目视图);
mView=项目视图;
}
公共作废收单编号(字符串收单编号){
TextView BillNo=(TextView)mView.findviewbyd(R.id.receiptBillNo);
BillNo.setText(BillNo);
}
public void setStoreName(字符串公司){
TextView StoreName=(TextView)mView.findViewById(R.id.receiptStoreName);
StoreName.setText(公司);
}
公共无效设置日期(字符串日期){
TextView日期=(TextView)mView.findViewById(R.id.receiptDate);
Date.setText(日期);
}
公共无效设置时间(字符串时间){
TextView时间=(TextView)mView.findViewById(R.id.receiptTime);
Time.setText(Time);
}
公用无效设置电话(字符串电话){
TextView电话=(TextView)mView.findviewbyd(R.id.receiptPhone);
setText(电话);
}
公共void setBillTotal(字符串总计){
TextView BillTotal=(TextView)mView.findViewById(R.id.receiptTotal);
BillTotal.setText(总计);
}
}

数据存在于从另一个活动检索的子密钥值处,然后应显示此数据。

您需要删除此项:

mReceipt.setHasFixedSize(true);
因此,数据将显示在页面中

选中此项:


完成了这项工作,但您能否解释原因?请检查编辑中的链接,这在旧版本中是一个问题,如果您将其删除,则会显示数据