Android picasso imageloader listview项目图像被交换
我正在使用毕加索库在Android picasso imageloader listview项目图像被交换,android,listview,picasso,Android,Listview,Picasso,我正在使用毕加索库在listview中加载图像,以便快速加载图像。它工作正常,但当我们滚动listview图像时,图像被交换 请参考下面的代码,让我知道哪里出了问题 public static class ViewHolder { @Bind(R.id.userNameTV) TextView _userNameTV; @Bind(R.id.addCB) CheckBox _addCB; @Bind(R.id.use
listview
中加载图像,以便快速加载图像。它工作正常,但当我们滚动listview图像时,图像被交换
请参考下面的代码,让我知道哪里出了问题
public static class ViewHolder {
@Bind(R.id.userNameTV)
TextView _userNameTV;
@Bind(R.id.addCB)
CheckBox _addCB;
@Bind(R.id.userIV)
ImageView _userIV;
public ViewHolder(View view) {
ButterKnife.bind(this, view);
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.add_participants_row, parent, false);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
AddparticipantsBean bean = _addArrayList.get(position);
if(bean.get_userName() != null){
viewHolder._userNameTV.setText(bean.get_userName());
}else
viewHolder._userNameTV.setText("");
viewHolder._userNameTV.setTypeface(Constant.typeface(context, "HelveticaNeueLTStd-LtCn.otf"));
if(bean.get_userImage().equalsIgnoreCase("null")||bean.get_userImage().equalsIgnoreCase("")){
viewHolder._userIV.setBackgroundResource(R.drawable.icon);
}else {
Picasso.with(this.context).cancelRequest(viewHolder._userIV);
Picasso.with(context)
.load(_addArrayList.get(position).get_userImage())
.placeholder(R.drawable.icon) // optional
.error(R.drawable.icon) // optional
.into(new Target() {
// @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressLint("NewApi")
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
viewHolder._userIV.setBackground(new BitmapDrawable(context.getResources(), bitmap));
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
Log.d("TAG", "FAILED");
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
Log.d("TAG", "Prepare Load");
}
});
// viewHolder._userIV.setBackgroundResource(R.drawable.img_1);
}
viewHolder._addCB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AddparticipantsBean bean = new AddparticipantsBean();
bean = _addArrayList.get(position);
if(bean.get_isChecked()){
bean.set_isChecked(false);
}else {
bean.set_isChecked(true);
}
notifyDataSetChanged();
}
});
viewHolder._addCB.setChecked(bean.get_isChecked());
return convertView;
}
发布您的ViewHolder类到已发布的公共静态类ViewHolder{@Bind(R.id.userNameTV)TextView{u userNameTV;@Bind(R.id.addCB)复选框_addCB;@Bind(R.id.userIV)ImageView{u userIV;公共ViewHolder(视图){ButterKnife.Bind(this,View);}尝试
if(TextUtils.isEmpty(bean.get_userImage()){
我应该放在哪里it@MD在滚动listview图像时仍有相同问题正在闪烁将ViewHolder类发布到已发布的公共静态类ViewHolder{@Bind(R.id.userNameTV)TextView_userNameTV;@Bind(R.id.addCB)复选框_addCB;@Bind(R.id.userIV)ImageView _userIV;public ViewHolder(View){ButterKnife.Bind(this,View);}}尝试if(TextUtils.isEmpty(bean.get_userImage()){
我应该放在哪里it@MD不工作,滚动listview图像时仍然存在相同问题