[英]Listview Images gets shuffled when scrolled from top to bottom
I have a custom list view adapter, and when I scroll down/up the list, images get shuffled and I don't know what to do. 我有一个自定义列表视图适配器,当我向下/向上滚动列表时,图像会被打乱,并且我不知道该怎么办。 How to solve this problem? 如何解决这个问题呢?
public View getView(int position, View convertView, ViewGroup parent) {
DataModel dataModel = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.letter = convertView.findViewById(R.id.tvFirstt);
viewHolder.name = convertView.findViewById(R.id.nameview);
viewHolder.contact =convertView.findViewById(R.id.contactview);
viewHolder.profileimg=convertView.findViewById(R.id.profileimg);
viewHolder.chkSelect = convertView.findViewById(R.id.checkbox);
viewHolder.detail = convertView.findViewById(R.id.detail);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(dataModel.fname + " " + dataModel.lname);
viewHolder.contact.setText(dataModel.landline);
viewHolder.detail.setImageResource(R.drawable.right);
viewHolder.chkSelect.setTag(position);
viewHolder.chkSelect.setChecked(dataModel.isChecked);
viewHolder.chkSelect.setOnCheckedChangeListener(this);
if (dataModel.image == null) {
viewHolder.letter.setVisibility(View.VISIBLE);
viewHolder.letter.setText(dataModel.fname.substring(0, 1));
} else {
viewHolder.profileimg.setVisibility(View.VISIBLE);
viewHolder.profileimg.setImageBitmap(convertToBitmap(dataModel.image));
}
} else {
Log.e("Error", "Please see again");
}
convertView.setTag(viewHolder);
return convertView;
}
you were not resetting the image 您没有重置图像
public View getView(int position, View convertView, ViewGroup parent) {
DataModel dataModel = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.letter = convertView.findViewById(R.id.tvFirstt);
viewHolder.name = convertView.findViewById(R.id.nameview);
viewHolder.contact =convertView.findViewById(R.id.contactview);
viewHolder.profileimg=convertView.findViewById(R.id.profileimg);
viewHolder.chkSelect = convertView.findViewById(R.id.checkbox);
viewHolder.detail = convertView.findViewById(R.id.detail);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(dataModel.fname + " " + dataModel.lname);
viewHolder.contact.setText(dataModel.landline);
viewHolder.detail.setImageResource(R.drawable.right);
viewHolder.chkSelect.setTag(position);
viewHolder.chkSelect.setChecked(dataModel.isChecked);
viewHolder.chkSelect.setOnCheckedChangeListener(this);
if (dataModel.image == null) {
viewHolder.letter.setVisibility(View.VISIBLE);
viewHolder.letter.setText(dataModel.fname.substring(0, 1));
//I have added this
viewHolder.profileimg.setImageBitmap(null);
} else {
viewHolder.profileimg.setVisibility(View.VISIBLE);
viewHolder.profileimg.setImageBitmap(convertToBitmap(dataModel.image));
}
} else {
Log.e("Error", "Please see again");
}
convertView.setTag(viewHolder);
return convertView;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.