Java If-else语句可以在adapterclass中执行吗?

Java If-else语句可以在adapterclass中执行吗?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,if else语句是否在适配器类中执行 我正在尝试制作类似Shopee应用程序的通知消息。所以我希望用户收到通知,如果管理员提交了客户跟踪号码,客户将在通知页面中收到消息,该页面将显示包含其跟踪号码的文本。如果他们还没有追踪号码。通知不应显示在客户页面上 突出显示的黄色是正确的输出,但红线不是。由于管理员尚未更新客户订单跟踪号,因此该通知还未发出 适配器类 public void onBindViewHolder(@NonNull MyViewHolder myViewHolde

if else语句是否在适配器类中执行

我正在尝试制作类似Shopee应用程序的通知消息。所以我希望用户收到通知,如果管理员提交了客户跟踪号码,客户将在通知页面中收到消息,该页面将显示包含其跟踪号码的文本。如果他们还没有追踪号码。通知不应显示在客户页面上

突出显示的黄色是正确的输出,但红线不是。由于管理员尚未更新客户订单跟踪号,因此该通知还未发出

适配器类


     public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
            if (orderList.get(i).getTrackingNum() == ""){
                myViewHolder.note.setText("Your order has not been shipped yet!" +orderList.get(i).dateTime);


            }
            else

            myViewHolder.note.setText(" Your order ID :" + orderList.get(i).getDateTime()+" has been posted. The Tracking number is :" + orderList.get(i).getTrackingNum());
    }



    protected void onStart() {
            super.onStart();
            if (dbNotification != null) {
                dbNotification.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()) {
                                    orderList.add(ds.getValue(Order.class));


                                }
                            }

                        }

                        notificationAdapter NotificationAdapter = new notificationAdapter(orderList);
                        recyclerView.setAdapter(NotificationAdapter);

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                        Toast.makeText(CustNotification.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }

notificationClass


     public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
            if (orderList.get(i).getTrackingNum() == ""){
                myViewHolder.note.setText("Your order has not been shipped yet!" +orderList.get(i).dateTime);


            }
            else

            myViewHolder.note.setText(" Your order ID :" + orderList.get(i).getDateTime()+" has been posted. The Tracking number is :" + orderList.get(i).getTrackingNum());
    }



    protected void onStart() {
            super.onStart();
            if (dbNotification != null) {
                dbNotification.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()) {
                                    orderList.add(ds.getValue(Order.class));


                                }
                            }

                        }

                        notificationAdapter NotificationAdapter = new notificationAdapter(orderList);
                        recyclerView.setAdapter(NotificationAdapter);

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                        Toast.makeText(CustNotification.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }


要明确回答您的问题,可以在
onBindViewHolder()方法中使用if-else之类的逻辑

至于为什么你的逻辑可能不起作用,也许你应该改变你的if语句来使用,看看它是否起作用

public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
    if (TextUtils.isEmpty(orderList.get(i).getTrackingNum())) {
        myViewHolder.note.setText("Your order has not been shipped yet!" + orderList.get(i).dateTime);

    } else {
        myViewHolder.note.setText(" Your order ID :" + orderList.get(i).getDateTime() + " has been posted. The Tracking number is :" + orderList.get(i).getTrackingNum());
    }
}

在比较
字符串时,不能使用
==
,会得到意外的结果。将
orderList.get(i).getTrackingNum()==”
更改为
orderList.get(i).getTrackingNum().equals(“”
)。您甚至可以使用
orderList.get(i).getTrackingNum().isEmpty()
检查跟踪号是否为空。