gpt4 book ai didi

android - Adapter 不断实例化 AdapterView

转载 作者:行者123 更新时间:2023-11-30 03:57:17 31 4
gpt4 key购买 nike

我一直在关注许多关于如何优化像画廊这样的列表的教程,但是我无法让我的适配器重新循环 View 。这是我的代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("ImageAdapter","getView : "+convertView);
ImageView imageView = null;

if (convertView == null){
//imageView = (ImageView) mInflater.inflate(R.layout.pic_adapter, null);
imageView = new ImageView(context);


holder = new ViewHolder();
holder.imageView = imageView;

imageView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
//imageView = holder.imageView;
}

holder.imageView.setImageDrawable(plotsImages.get(position));
Log.d("ImageAdapter","return : "+imageView);
return imageView;
}

在我的日志中,我在 getView 的开头总是得到“null”,这意味着 convertView 不是一些重新循环的 View ,这是怎么回事?

谢谢你的帮助!

最佳答案

我相信您在 ViewHolder 中使用的循环逻辑是罪魁祸首。当我尝试运行您的代码时,应用程序崩溃并出现了一个模糊的错误。然而,这工作正常:

public View getView(int position, View convertView, ViewGroup parent) {
Log.d("ImageAdapter","getView : "+convertView);
ImageView imageView = null;

if (convertView == null){
//imageView = (ImageView) mInflater.inflate(R.layout.pic_adapter, null);
imageView = new ImageView(Example.this);
} else {
imageView = (ImageView) convertView;
}

imageView.setImageDrawable(plotsImages.get(position));
Log.d("ImageAdapter","return : "+imageView);
return imageView;
}

ViewHolder 应该可以避免您重复使用 findViewById() 来访问行布局中的 subview 。由于您的布局只是一个 ImageView,因此不需要 ViewHolder。

关于android - Adapter 不断实例化 AdapterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143629/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com