[英]Passing context in Glide from a ViewHolder class?
I'm trying to pass context inside with()
, but "this" doesn't work, neither do getContext()
, getActivity()
. 我试图在with()
内部传递上下文,但是“ this”不起作用, getContext()
, getActivity()
也不起作用。 My class is a ViewHolder which extends RecycleView
. 我的课是ViewHolder,它扩展了RecycleView
。 How do I get the context? 我如何获得上下文?
protected void bind(I item, @Nullable OnContactClickListener<I> listener) {
Author author = item.getContact().getAuthor();
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageRef.child("/"+author.getName()+"/pic.jpg"))
.error(new IdenticonDrawable(author.getId().getBytes()))
.into(avatar);
String contactName = author.getName();
name.setText(contactName);
so simple get context of avtar view. 如此简单地获取avtar视图的上下文。
protected void bind(I item, @Nullable OnContactClickListener<I> listener) {
Author author = item.getContact().getAuthor();
Glide.with(avatar.getContext())
.using(new FirebaseImageLoader())
.load(storageRef.child("/"+author.getName()+"/pic.jpg"))
.error(new IdenticonDrawable(author.getId().getBytes()))
.into(avatar);
String contactName = author.getName();
name.setText(contactName);
You can use 您可以使用
Glide.with(itemview)
.using(new FirebaseImageLoader())
.load(storageRef.child("/"+author.getName()+"/pic.jpg"))
.error(new IdenticonDrawable(author.getId().getBytes()))
.into(avatar);
From this line 从这条线
name.setText(contactName);
I can say name is a TextView
. 我可以说名称是TextView
。 You can use view.getContext()
to get Context
from view. 您可以使用view.getContext()
从视图获取Context
。 view.getContext()
returns the context the view is running in. view.getContext()
返回运行视图的上下文。
Glide.with(name.getContext())
you can try like this : 你可以这样尝试:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private final Context context;
public MyAdapter(Context context) {
this.context = context;
}
@NonNull
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(this.context).inflate(R.layout.frames_adapter_item, parent, false));
}
public void onBindViewHolder(@NonNull final ViewHolder holder, @SuppressLint("RecyclerView") int position) {
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
holder.progress_bar.setVisibility(View.GONE);
Glide.with(getApplicationContext()).load(arrayOfFile.get(position)).asBitmap().into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if (resource != null) {
imageView.setImageBitmap(resource);
}
}
});
}
public int getItemCount() {
return 1;
}
class ViewHolder extends RecyclerView.ViewHolder {
final ImageView imageView;
final ProgressBar progress_bar;
ViewHolder(View itemView) {
super(itemView);
this.imageView = itemView.findViewById(R.id.imageView);
this.progress_bar = itemView.findViewById(R.id.progress_bar);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.