What I am trying to achieve: I have an activity that shows orders if exists but if no orders are found it just shows empty screen (Empty RecyclerView), so if the screen is empty I would like to show a msg to the user or just close the activity by finish();
The Problem: I can't find a way to determine if my adapter has any data! getItemCount always returns zero, and I am not using any listData (ArrayList) I am using Firebase so I don't know how to check total number of items present in recycler view. Help!
Code:
private void loadOrders(String phone) {
Query getOrdersByUser = requests.orderByChild("phone").equalTo(phone);
final FirebaseRecyclerOptions<Request> orderOptions = new FirebaseRecyclerOptions.Builder<Request>()
.setQuery(getOrdersByUser,Request.class).build();
adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(orderOptions) {
@Override
protected void onBindViewHolder(@NonNull final OrderViewHolder orderViewHolder, final int i, @NonNull final Request model) {
orderViewHolder.txtOrderId.setText("#"+adapter.getRef(i).getKey());
orderViewHolder.txtOrderStatus.setText(orderStatus);
orderViewHolder.txtOrderStatus.setTextColor(Color.GREEN);
}
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.order_layout,parent,false);
return new OrderViewHolder(itemView);
}
@Override
public int getItemCount() {
return super.getItemCount();
}
};
adapter.startListening();
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
}