FIrebaseUI(版本 0.4.0):firebase 回收器适配器未从 firebase 数据库中获取数据
FIrebaseUI( version 0.4.0): firebase recycler Adapter not fetching data from firebase database
我有这个 DataSaveActivty,我需要在回收站视图中填充我的数据,当我 运行 这段代码时,它没有显示任何错误,也没有卡片只是一个空白 activity 和祝酒词。我没有发现任何错误,但为什么不显示任何内容。
@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);
}
}
数据存在于从另一个 activity 检索的子键值中,然后应显示此数据。
你需要删除这个:
mReceipt.setHasFixedSize(true);
这样数据就会出现在页面中
检查这个:
我有这个 DataSaveActivty,我需要在回收站视图中填充我的数据,当我 运行 这段代码时,它没有显示任何错误,也没有卡片只是一个空白 activity 和祝酒词。我没有发现任何错误,但为什么不显示任何内容。
@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);
}
}
数据存在于从另一个 activity 检索的子键值中,然后应显示此数据。
你需要删除这个:
mReceipt.setHasFixedSize(true);
这样数据就会出现在页面中
检查这个: