0

Problem

I want to make the progress bar visibility to gone as soon as the data gets loaded. I the following adapter class I tried by overriding OnDataChanged() method. But it didn't worked. The progress bar is still visible.

Adapter Code

package com.example.movies4u;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;

public class Ratings_Adapter extends FirebaseRecyclerAdapter<Ratings_model,Ratings_Adapter.myViewHolder> {

    ProgressBar progressBar;
    /**
     * Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See
     * {@link FirebaseRecyclerOptions} for configuration options.
     *
     * @param options
     */
    public Ratings_Adapter(@NonNull FirebaseRecyclerOptions<Ratings_model> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull myViewHolder holder, int position, @NonNull Ratings_model model) {
        holder.title.setText(model.getTitle());
        holder.description.setText(model.getDescription());

        Glide.with(holder.img.getContext())
                .load(model.getImgurl())
                .placeholder(R.drawable.movie_icon)
                .error(R.drawable.cannot_load_item)
                .into(holder.img);
    }

    @NonNull
    @Override
    public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ratings_item,parent,false);
        return new myViewHolder(view);
    }

    class myViewHolder extends RecyclerView.ViewHolder{

        ImageView img;
        TextView title,description;
        ProgressBar progressBar;

        public myViewHolder(@NonNull View itemView) {
            super(itemView);

            progressBar=(ProgressBar) itemView.findViewById(R.id.ratingsprogressBar);
            img=(ImageView) itemView.findViewById(R.id.img1);
            title=(TextView) itemView.findViewById(R.id.titletext);
            description=(TextView) itemView.findViewById(R.id.descriptiontext);
        }
    }

    @Override
    public void onDataChanged(){
        if(progressBar!=null){
            progressBar.setVisibility(View.GONE);
        }
    }
}

I am Expecting to make the visibility of progress bar to be gone after the data gets loaded

  • Have you checked this https://stackoverflow.com/q/30397460/9725562 – Anshul1507 Oct 30 '22 at 16:33
  • "I tried overriding OnDataChanged() method. But it didn't work." doesn't provide enough information so we can help. What exactly didn't work? Did you get any errors? Please respond using @AlexMamo – Alex Mamo Oct 31 '22 at 08:24

0 Answers0