2

我正在传递我的图像资源以使用AsyncTask并从那里更新我的图像源,以便我一次只能在我的列表视图中获得一张图像。

我在不使用 convertView 的情况下得到了预期的结果,但是当我尝试使用 convertview 时,结果并不符合我的意愿。请帮我。以下是这两种情况的代码:

  1. 没有 convertViewgetView()方法:

    public View getView(int position, View convertView, ViewGroup arg2) {
        ImageView imageView = new ImageView(context);
        imageView.setLayoutParams(new ListView.LayoutParams(
                LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
        if (images[position] != null)
            imageView.setImageResource(images[position]);
        return imageView;
    }
    
  2. 使用 convertViewgetview()方法:

    View v = convertView;
        if (v == null) {
            v = new ImageView(context);
            v.setLayoutParams(new ListView.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
    
        }
        if (images[position] != null)
            ((ImageView) v).setImageResource(images[position]);
        return v;
    }                                                                                  
    
4

1 回答 1

0

您还需要发送异步任务代码,另一方面,试试这个,这对我有用-

@Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder;
            if (convertView == null) {
                viewHolder = new ViewHolder();
                viewHolder.imageView = new ImageView(context);
                convertView.setTag(viewHolder);
            } else
                viewHolder = (ViewHolder) convertView.getTag();

             if (images[position] != null)
            ((ImageView) v).setImageResource(images[position]);

            return convertView;
        }

        class ViewHolder {
            ImageView imageView;
        }
于 2013-01-28T05:49:26.967 回答