【发布时间】:2020-01-23 20:07:10
【问题描述】:
Android 初学者在这里。 我正在尝试使用 glide(并且我已经添加了库)将图像添加到我的图像视图中。
看看其他例子,大多数人似乎都这样做: Glide.with(this).load("link").into(myHolder.image);
但是当我使用我的适配器类时,这不起作用。
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
Context c;
ArrayList<Model> models;
public MyAdapter(Context c, ArrayList<Model> models) {
this.c = c;
this.models = models;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.box_listview, null);
return new MyHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
myHolder.name.setText(models.get(i).getName());
myHolder.type.setText(models.get(i).getType());
Glide.with(this).load("http://img.pokemondb.net/artwork/pokemonname.jpg").into(myHolder.image);
}
@Override
public int getItemCount() {
return models.size();
}
}
下面有一条红线。 在上下文中应该怎么做?
【问题讨论】:
-
Glide.with(c).load("img.pokemondb.net/artwork/…; c 是上下文
-
另外,如果你是初学者,我建议你从 Kotlin 开始学习而不是 java。
-
上下文将是
getActivity()或getContext(),因为adapter没有自己的上下文。像下面这样改变它,希望它会解决。Glide.with(getActivity()).load("http://img.pokemondb.net/artwork/pokemonname.jpg").into(myHolder.image); -
基山是对的!当你传递“this”时,你真的想要一个“Context”对象,它可以是一个活动、片段活动或上下文本身。当您将上下文传递给适配器时,只需使用它即可。
-
你也可以投票给我,如果我仍然有帮助的话。
标签: java android intellij-idea