If there is data in query or Path it show data in

2019-09-21 22:16发布

问题:

I use FirestoreRecyclerAdapter with query. I show the loading till it's not getting into onBindViewHolder(). If it comes to onBindViewHolder then I close the dialog.

But in my scenario there is no data into query and its not get into onBindViewHolder so I do not found anyway to close it. Here is my code. Please help.

Query query = GlobalApplication.applianceRef.whereEqualTo("applianceType", appType);

FirestoreRecyclerOptions < RoomAppliance > response = new FirestoreRecyclerOptions.Builder < RoomAppliance > ()
    .setQuery(query, RoomAppliance.class)
    .build();

if (dialog != null) {
    dialog.show();
}

adapter = new FirestoreRecyclerAdapter < RoomAppliance, ApplianceActivity.ViewHolder > (response) {
    @Override
    public void onBindViewHolder(final ApplianceActivity.ViewHolder holder, final int position, final RoomAppliance model) {
        dialog.dismiss();
    }

    @Override
    public ApplianceActivity.ViewHolder onCreateViewHolder(ViewGroup group, int i) {
        View view = null;
        try {
            view = LayoutInflater.from(group.getContext())
                .inflate(R.layout.user_appliance, group, false);
        } catch (Exception e) {
            Log.e("error", e.getMessage());
        }
        return new ApplianceActivity.ViewHolder(view);
    }
};

回答1:

I got Answer

  @Override
                    public void onDataChanged() {
                        if(dialog != null && dialog.isShowing()){
                            dialog.dismiss();

                        }

                        if(getItemCount() == 0){

                            remoteListRV.setVisibility(View.GONE);
                            msgTv.setVisibility(View.VISIBLE);
                            msgTv.setText("No "+ appType +" Available  !!!!");


                        }else {

                            remoteListRV.setVisibility(View.VISIBLE);
                            msgTv.setVisibility(View.GONE);

                        }

                    }