2

使用する画像リソースを渡し、AsyncTaskそこから画像ソースを更新して、リストビューで一度に 1 つの画像しか取得できないようにしています。

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 に答える