I have a ListView which I am filling from server. Everything works fine but the single problem is that the downloaded images are shown in wrong item positions when scroll. Only after a few seconds then it shows the correct image on the right position.
Here is my ArrayAdapter class, which includes the AsynchTask:
public class ApplicationAdapter extends ArrayAdapter<Application> {
    private List<Application> items;
    public ApplicationAdapter(Context context, List<Application> items) {
        super(context, R.layout.app_custom_list, items);
        this.items = items;
    }
    @Override
    public int getCount() {
        return items.size();
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater li = LayoutInflater.from(getContext());
            v = li.inflate(R.layout.app_custom_list, null);
        }
        Application app = items.get(position);
        if (app != null) {
            ImageView imageView = (ImageView) v.findViewById(R.id.appIcon);
            TextView titleText  = (TextView) v.findViewById(R.id.titleTxt);
            if (imageView != null) {
                String path_image = app.getImagePath();
                // Call AsynchTask to load image into ImageView from path
                DownloadImageTask1 d = new DownloadImageTask(imageView);
                d.execute(path_image);
            }
            if (titleText != null) {
                titleText.setText(app.getTitle());
            }
        }
        return v;
    }
private class DownloadImageTask1 extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;
    public DownloadImageTask1(ImageView bmImage) {
        this.bmImage = bmImage;
    }
    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }
    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(getRoundedCornerBitmap(result));
    }
}
Can somebody please guide me to the right direction? I am already working for days to solve this issue. Thanks!!!
 
     
     
     
    