Android 使用毕加索在Recyclerview中获取图像时出错
我想使用毕加索从json url获取图像,但不知道如何在RecyclerView中使用。 毕加索.withcontext.loadString.valueOfusers.getposition.intoholder.avatar 我在如何定义上下文的方法中出错了 UserAdapter.java 尝试从活动或片段获取上下文 这里的上下文将是活动上下文、片段上下文或GetApplicationContext 现在你可以调用毕加索从服务器Picasso.withcontext.loadString.valueOfusers.getposition.intoholder.avatar获取图像 用这个Android 使用毕加索在Recyclerview中获取图像时出错,android,android-recyclerview,picasso,Android,Android Recyclerview,Picasso,我想使用毕加索从json url获取图像,但不知道如何在RecyclerView中使用。 毕加索.withcontext.loadString.valueOfusers.getposition.intoholder.avatar 我在如何定义上下文的方法中出错了 UserAdapter.java 尝试从活动或片段获取上下文 这里的上下文将是活动上下文、片段上下文或GetApplicationContext 现在你可以调用毕加索从服务器Picasso.withcontext.loadString.
private Context context;
private ArrayList<User> users = new ArrayList<>();
private LayoutInflater layoutInflater;
//constructor
public UserAdapter(ArrayList<User> users, Context context) {
this.users = users;
this.context = context;
this.layoutInflater=layoutInfalter.from(context);
}
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInfalter.inflate(R.layout.items,parent,false);
return new UserViewHolder(view);
}
@Override
public void onBindViewHolder(UserViewHolder holder, int position) {
holder.login.setText(users.get(position).getUser_login());
holder.type.setText(users.get(position).getType());
Picasso.with(context).
load(String.valueOf(users.get(position)))
.into(holder.avatar);
}
@Override
public int getItemCount() {
return users.size();
}
public class UserViewHolder extends RecyclerView.ViewHolder {
TextView login;
TextView type;
ImageView avatar;
public UserViewHolder(View itemView) {
super(itemView);
login = (TextView)itemView.findViewById(R.id.login);
type = (TextView)itemView.findViewById(R.id.type);
avatar = (ImageView)itemView.findViewById(R.id.avatar);
}
}
您有两个选项,或者从acctivity或fragment获取上下文并传递给适配器,或者使用布局上下文1。首先,您需要从活动传递上下文。2.将Picasso.withcontext.loadString.valueOfusers.getposition.intoholder.avatar;收件人:Picasso.withcontext.loadusers.getposition.getAvatarUrl.intoholder.avatar;您的问题听起来应该像是如何将上下文输入到RecyclerView适配器中,而不是您所问的。@VladMatvienko是的,我如何在毕加索中定义上下文??只需使用搜索,您将在大约20秒内找到答案。还需要从picasso.withcontext.loadString.valueOfusers.getposition.intoholder.avatar中进行更改;收件人:Picasso.withcontext.loadusers.getposition.getAvatarUrl.intoholder.avatar;因为我不知道他使用的是什么数据类型,所以我只添加了他使用的代码。如果他使用的是string,那么他不需要string.ValueOfI,我只需要说他的模型是用户类型。我说的是为了改变这一点。请检查它ArrayList users=new ArrayList;和holder.login.setTextusers.getposition.getUser\u login;holder.type.setTextusers.getposition.getType;毕加索.withcontext.loadString.valueOfusers.getposition.intoholder.avatar;
Context context;
public UserAdapter(ArrayList<User> users, Context context) {
this.users = users;
this.context = context;
}
UserAdapter adapter = new UserAdapter(usermodel, context);
private Context context;
private ArrayList<User> users = new ArrayList<>();
private LayoutInflater layoutInflater;
//constructor
public UserAdapter(ArrayList<User> users, Context context) {
this.users = users;
this.context = context;
this.layoutInflater=layoutInfalter.from(context);
}
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInfalter.inflate(R.layout.items,parent,false);
return new UserViewHolder(view);
}
@Override
public void onBindViewHolder(UserViewHolder holder, int position) {
holder.login.setText(users.get(position).getUser_login());
holder.type.setText(users.get(position).getType());
Picasso.with(context).
load(String.valueOf(users.get(position)))
.into(holder.avatar);
}
@Override
public int getItemCount() {
return users.size();
}
public class UserViewHolder extends RecyclerView.ViewHolder {
TextView login;
TextView type;
ImageView avatar;
public UserViewHolder(View itemView) {
super(itemView);
login = (TextView)itemView.findViewById(R.id.login);
type = (TextView)itemView.findViewById(R.id.type);
avatar = (ImageView)itemView.findViewById(R.id.avatar);
}
}