Reputation: 129
I would like to display an progressBar in my custom adapter while downloading!
There is My Adapter Class
public class ImageAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = ((Activity) context).getLayoutInflater().inflate(layoutResourceId, parent, false);
holder.pictureView = (GalerieImageView) convertView.findViewById(R.id.GalerieView);
holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progressBarGalerie);
holder.progressBar.setVisibility(View.VISIBLE);
holder.progressBar.setIndeterminate(true);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ImageLoader imageLoader = ImageCacheManager.getInstance().getImageLoader();
if (arrayList.get(position).getTurl() != null) {
Log.i("lien", "" + arrayList.get(position).getTurl());
holder.pictureView.setImageUrl(arrayList.get(position).getTurl(), imageLoader);
holder.pictureView.setVisibility(View.VISIBLE);
holder.pictureView.setDefaultImageResId(R.drawable.ico_loading);
holder.pictureView.setErrorImageResId(R.drawable.ico_error);
holder.pictureView.setLayoutParams(new RelativeLayout.LayoutParams(imageWidth, imageWidth));
holder.pictureView
.setResponseObserver(new GalerieImageView.ResponseObserver() {
@Override
public void onError() {
holder.progressBar.setVisibility(View.GONE);
}
@Override
public void onSuccess() {
holder.progressBar.setVisibility(View.GONE);
}
});
} else {
//holder.pictureView.setVisibility(View.GONE);
}
return convertView;
}
}
My Custom Networkview with Observer (GaleryImageView) it based on this StackOverFlow answer. I'm unable to display the progress bar.
Upvotes: 0
Views: 2133
Reputation: 98
I am doing exactly this. I wrapped the progress bar in a method on the calling Activity/Fragment, not the adapter itself. Something like:
public void startProgressBar() {
dialog = new ProgressDialog(this);
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.setMessage("MEssgae");
dialog.show();
}
Dialog is a class member.
Now when I call volley, my next call is to startProgressBar - and I cancel dialog onReponse and onError.
so it becomes
doVolleyCommand(URL);
startProgressBar();
in my response handlers:
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
Upvotes: 2