【问题标题】:ConvertView not providing expected resultConvertView 未提供预期结果
【发布时间】:2013-01-28 05:08:49
【问题描述】:

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

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

  1. 没有 convertView getView() 方法:

    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. 使用 convertView getview() 方法:

    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;
    }                                                                                  
    

【问题讨论】:

  • 你得到什么结果..?
  • 两种情况下最终显示的图像相同。但中间结果不同。第一个显示的图像一直显示到最后,即最后消失了。
  • 尝试将您的 Asynctask 实现粘贴到编辑部分。您提供的代码 sn -p 不足以猜测可能导致问题的原因。
  • 返回视图前,用v初始化转换视图;像这样 convertView=v;返回 v;

标签: android android-layout android-intent android-widget


【解决方案1】:

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

@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;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-31
    • 2021-11-27
    • 2014-09-06
    • 2018-05-19
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多