Я использую Glide
для загрузки изображений в Recyclerview
(onBindViewHolder) с обратным вызовом RequestListener
. всякий раз, когда изображение загружается, первая ссылка будет храниться в файле SharedPreferences с именем key
. теперь я хочу передать имя в RequestListener
в качестве аргумента. как передать имя в качестве аргумента в RequestListener? И мне также нужно передать ImageView, чтобы я мог загрузить метод onException в случае сбоя загрузки.Передача аргументов в RequestListener Glide
Код:
метод onBindViewHolder:
@Override
public void onBindViewHolder(final ContactsAdapter.ContactsViewHolder holder, int position) {
final ContactInfo current = cDataset.get(position);
holder.contactName.setText(current.Contact_name);
//current.Conatct_name has to be passed to requestListener
URL url = Util.getSignedUrl(getContext().getApplicationContext(), current.phone_number.concat("/").concat("profile").concat("/").concat(current.phone_number).concat(".jpg"));
if (url != null) {
Log.d("image", url.toString());
Glide.with(getContext()).load(url.toString()).skipMemoryCache(true).fitCenter().diskCacheStrategy(DiskCacheStrategy.SOURCE).listener(requestListener).error(R.mipmap.ic_launcher).into(holder.contactProfileImage);
} else {
Log.d("image", "null");
}
}
RequestListener:
public RequestListener<String, GlideDrawable> requestListener = new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
Log.d("No Image",String.valueOf(e));
Log.d("Loading from cache","true");
return true;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
Log.d("storing cache ","true");
return false;
}
};