簡體   English   中英

如何在 Android Studio 中的 datasnapshot/recyclerview 中創建條件?

[英]How to create condition inside the datasnapshot/recyclerview in Android Studio?

我為我的項目創建了標簽式活動。 我有三個選項卡,分別是已付費、未付費和已發布項目,我想根據狀態對每個選項卡進行分類。 我已經創建了編碼,但我不確定如何在我的編碼中實現該方法。 我只想要具有“PAID”的訂單,因為它們的狀態將顯示在我的 PaidFrag 中。

付費片段:

databaseReference = FirebaseDatabase.getInstance().getReference("Order");

databaseReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()) {
            orderList = new ArrayList<>();
            for (DataSnapshot orderSnapshot : dataSnapshot.getChildren()) {
                for (DataSnapshot ds : orderSnapshot.getChildren()) {
                    Order order = ds.getValue(Order.class);
                    if (order.getStatus().equals("UNPAID")) ;
                    orderList.add(ds.getValue(Order.class));

                }
            }

            psOrderAdapter PsOrderAdapter = new psOrderAdapter(orderList);
            recyclerView.setAdapter(PsOrderAdapter);
        }
    }


public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {

    myViewHolder.name.setText("Name : " + orderList.get(i).getName());
    myViewHolder.status.setText("Status : " + orderList.get(i).getStatus());
    myViewHolder.total.setText("Total Price : RM " + orderList.get(i).getTotal());
    myViewHolder.address.setText("Address : " + orderList.get(i).getAddress());
    myViewHolder.dateTime.setText("Order ID  :" + orderList.get(i).getOrder_id());

    myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String cust_id = orderList.get(i).getCust_id();
            String oid = orderList.get(i).getOrder_id();
            String status = orderList.get(i).getStatus();
            String courier = orderList.get(i).getCourier();
            String track = orderList.get(i).getTrackingNum();
            String num = orderList.get(i).getPhone();

            Intent intent = new Intent(context, updateStatus.class);
            intent.putExtra("cust_id",cust_id);
            intent.putExtra("order_id",oid);
            intent.putExtra("status",status);
            intent.putExtra("courier", courier);
            intent.putExtra("trackingNum",track);
            intent.putExtra("phone",num);
            context.startActivity(intent);
        }
    });

聽起來您正在尋找 Firebase 數據庫查詢,它限制了從數據庫返回的節點:

databaseReference = FirebaseDatabase.getInstance().getReference("Order");
Query query = databaseReference.orderByChild("status").equalTo("PAID");
query.addValueEventListener(new ValueEventListener() {
  ...

您需要確保statusPAID字符串與您在數據庫中擁有的確切鍵和值相匹配。

有關這方面的更多信息,請參閱有關排序和過濾數據的 Firebase 文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM