我正在使用通用图像加载器来显示来自web的listview图像。但在加载时,一个图像项目会显示其他图像项目。经过一段时间后,它完全加载它显示的确切图像。它有时看起来很尴尬 - 一个人显示另一个男人的照片。提前致谢。 我的适配器代码:通用图像加载器在Android中加载时显示不同的图像
公共类EmployeeAdapter延伸BaseAdapter实现的可筛选{
private ArrayList<EmployeeObj> mOriginalValues; // Original Values
private ArrayList<EmployeeObj> mDisplayedValues; // Values to be
private ImageLoader imageLoader; // displayed
LayoutInflater inflater;
public EmployeeAdapter(Context context,
ArrayList<EmployeeObj> mProductArrayList) {
this.mOriginalValues = mProductArrayList;
this.mDisplayedValues = mProductArrayList;
inflater = LayoutInflater.from(context);
imageLoader = ImageLoader.getInstance();
}
@Override
public int getCount() {
return mDisplayedValues.size();
}
@Override
public Object getItem(int position) {
return mDisplayedValues.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private class ViewHolder {
LinearLayout llContainer;
TextView employeeName, employeeDesignation;
Button callButton;
ImageView imageView;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.employee_row, null);
holder.llContainer = (LinearLayout) convertView
.findViewById(R.id.searchListView);
holder.employeeName = (TextView) convertView
.findViewById(R.id.listTitle);
holder.employeeDesignation = (TextView) convertView
.findViewById(R.id.listDesignation);
holder.callButton = (Button) convertView
.findViewById(R.id.listButton);
holder.imageView = (ImageView) convertView
.findViewById(R.id.listImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String addEmployeeName = mDisplayedValues.get(position)
.getEmployeeName();
if (addEmployeeName.length() >= 20) {
addEmployeeName = addEmployeeName.substring(0, 20);
addEmployeeName = addEmployeeName + ".....";
}
holder.employeeName.setText(addEmployeeName);
holder.employeeDesignation.setText(mDisplayedValues.get(position)
.getEmployeeDesignation());
// holder.employeeMobile.setText("01722761395");
// holder.employeeDesignation.setText(mDisplayedValues.get(position)
// .getEmployeeDesignation());
holder.callButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// Toast.makeText(getApplicationContext(), "Done",
// Toast.LENGTH_SHORT).show();
// int position=(Integer)adapter.
// Log.e("position==",position+"");
pos = position;
dialog.show();
}
});
String path = mDisplayedValues.get(position).getImagePath();
if (path.length() <= 5) {
} else {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheOnDisc().cacheInMemory().build();
imageLoader.displayImage(path, holder.imageView, options);
}
convertView.setBackgroundColor(position % 2 == 0 ? Color
.parseColor("#ffffff") : Color.parseColor("#ffffff"));
return convertView;
}
请分享一些代码! – QAMAR
显示您的适配器代码 –
Brother我已编辑添加适配器代码 –