我正在使用通用圖像加載器來顯示來自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我已編輯添加適配器代碼 –