Ι有一个ListView适配器可以加载篮球队的比赛。我正在用毕加索或资源加载我的图像,如果它是该应用程序的团队。在我的第一个项目上,它似乎从网络上加载了两个团队的图像。这是一个示例代码和图像。
get
查看标有红色的第一项:
答案 0 :(得分:1)
我注意到你的代码中的错误
Holder holder=null;
if(view==null)
{
view = LayoutInflater.from(context).inflate(layoutResource, parent, false);
holder = new Holder(view, position);
view.setTag(holder);
}
else{
holder=(Holder)view.getTag();
}
//Continue your code here
答案 1 :(得分:1)
您可以像这样实现ViewHolder,
static class ViewHolder {
ImageView ourTeamLogo, foeLogo;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
if (convertView == null) {
view = LayoutInflater.from(context).inflate(layoutResource, parent, false);
holder = new ViewHolder();
holder.ourTeamLogo = (ImageView) view.findViewById(R.id.program_item_our_team_logo);
holder.foeLogo = (ImageView) view.findViewById(R.id.program_item_foe_logo);
view.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Match programItem = getItem(position);
if (programItem.isHome()) {
holder.ourTeamLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(holder.foeLogo);
} else {
holder.foeLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(holder.ourTeamLogo);
}
return view;
}
答案 2 :(得分:0)
找到解决方案,好像我需要添加
Picasso.with(上下文).cancelRequest(holder.ourTeamLogo); Picasso.with(上下文).cancelRequest(holder.foeTeamLogo);
static class ViewHolder {
ImageView ourTeamLogo, foeLogo;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
if (convertView == null) {
view = LayoutInflater.from(context).inflate(layoutResource, parent, false);
holder = new ViewHolder();
holder.ourTeamLogo = (ImageView) view.findViewById(R.id.program_item_our_team_logo);
holder.foeLogo = (ImageView) view.findViewById(R.id.program_item_foe_logo);
} else {
holder = (ViewHolder) convertView.getTag();
}
Match programItem = getItem(position);
if (programItem.isHome()) {
holder.ourTeamLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(context).
cancelRequest(holder.ourTeamLogo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(holder.foeLogo);
} else {
holder.foeLogo.setImageResource(R.drawable.our_team_logo);
Picasso.with(context).
cancelRequest(holder.ourTeamLogo);
Picasso.with(getContext())
.load(programItem.getFoeLogoURL())
.fit().placeholder(R.drawable.placeholder_team).into(holder.ourTeamLogo);
}
return view;
}