[英]How to display data from Firestore in a RecyclerView with Android?
[英]android - how to display the array of object from Cloud FireStore in the RecyclerView
我正在嘗試將存儲在 Cloud Firestore 中的數據顯示到 RecyclerView,但是當我運行該應用程序時,它顯示除itemList
之外的所有數據,僅顯示map
我沒有收到任何錯誤,所以它導致我遇到瓶頸
我的適配器代碼
Context context;
List<ViewOrderModel> viewOrderModelList;
public ViewOrderAdapter(Context context, List<ViewOrderModel> viewOrderModelList) {
this.context = context;
this.viewOrderModelList = viewOrderModelList;
}
@Override
public void onBindViewHolder(@NonNull ViewOrderAdapter.ViewHolder holder, int position) {
holder.userName.setText(viewOrderModelList.get(position).getUserName());
holder.date.setText(viewOrderModelList.get(position).getCurrentTime());
holder.totalPrice.setText(String.valueOf(viewOrderModelList.get(position).getTotalPrice()));
holder.address.setText(viewOrderModelList.get(position).getAddress());
holder.phone.setText(viewOrderModelList.get(position).getPhoneNumber());
ViewOrderModel viewOrderModel = viewOrderModelList.get(position);
holder.productName.setText(viewOrderModel.getProductName());
holder.quantity.setText(String.valueOf(viewOrderModel.getTotalQuantity()));
}
Model Class
public class ViewOrderModel implements Serializable {
String userName,phoneNumber,currentTime,address,documentID,productName;
long totalPrice;
List<ViewOrderModel> itemList;
int totalQuantity;
主要活動
order_rec = findViewById(R.id.admin_view_order_rec);
order_rec.setLayoutManager(new LinearLayoutManager(this,RecyclerView.VERTICAL,false));
viewOrderModelList = new ArrayList<>();
viewOrderAdapter = new ViewOrderAdapter(this,viewOrderModelList);
order_rec.setAdapter(viewOrderAdapter);
firestore.collection("UserOrder")
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if (!queryDocumentSnapshots.isEmpty()){
List<DocumentSnapshot> list = queryDocumentSnapshots.getDocuments();
for (DocumentSnapshot docSnap : list) {
ViewOrderModel orderModel = docSnap.toObject(ViewOrderModel.class);
viewOrderModelList.add(orderModel);
}
viewOrderAdapter.notifyDataSetChanged();
}
}
});
有沒有辦法顯示數據或任何其他與我在代碼中所做的不同的方式
你需要兩個不同的類。 例如,第一個是ViewOrderModel
class,它將包含address
、 currentTime
、 documentID
等字段。
第二個叫做Product
:
class Product {
String documentID, productName;
int productPrice, totalPrice, totalQuantity;
}
它將保存與 itemList 中存在的itemList
對應的屬性。 所以你的ViewOrderModel
class 應該是這樣的:
public class ViewOrderModel implements Serializable {
String userName,phoneNumber,currentTime,address,documentID,productName;
List<Product> itemList;
👆
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.