如何在 Android Studio 的 datasnapshot/recyclerview 中创建条件?
Posted
技术标签:
【中文标题】如何在 Android Studio 的 datasnapshot/recyclerview 中创建条件?【英文标题】:How to create condition inside the datasnapshot/recyclerview in Android Studio? 【发布时间】:2020-05-05 20:47:47 【问题描述】:我为我的项目创建了选项卡式活动。我有三个标签,分别是已付、未付和已发布项目 我想根据状态对它们中的每一个进行分类。我已经创建了编码,但我不确定如何在我的编码中实现该方法。我只想要具有“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);
);
【问题讨论】:
【参考方案1】:听起来您正在寻找 Firebase 数据库查询,它限制了从数据库返回的节点:
databaseReference = FirebaseDatabase.getInstance().getReference("Order");
Query query = databaseReference.orderByChild("status").equalTo("PAID");
query.addValueEventListener(new ValueEventListener()
...
您需要确保 status
和 PAID
字符串与数据库中的键和值完全匹配。
有关这方面的更多信息,请参阅 ordering and filtering data 上的 Firebase 文档。
【讨论】:
您现在拥有创建databaseReference
并在其上调用addValueEventListener
的代码的确切位置。以上是关于如何在 Android Studio 的 datasnapshot/recyclerview 中创建条件?的主要内容,如果未能解决你的问题,请参考以下文章
Android-Android studio中关于模拟器的/data目录不能显示的解决办法