java如何使用视图保持器模式制作自定义适配器?
我有这个自定义的图像适配器,我想更改它,使其内部有视图保持器模式。如果可能的话,谁能帮我弄清楚如何修改我的代码,使其具有视图持有者模式
public class ImageAdapter extends BaseAdapter {
private final int imageTotal;
private ArrayList<String> urlList = new ArrayList<>();
private final Context mContext;
public ImageAdapter(Context context, ArrayList<String> uList) {
mContext = context;
urlList = uList;
imageTotal = uList.size();
}
public int getCount() {
return imageTotal;
}
@Override
public String getItem(int position) {
return urlList.get(position);
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setAdjustViewBounds(true);
} else {
imageView = (ImageView) convertView;
}
String url = getItem(position);
Picasso.with(mContext)
.load(url)
.placeholder(R.drawable.loader)
.fit()
.into(imageView);
return imageView;
}
}
# 1 楼答案
您使用的视图只是一个ImageView,因此ViewHolder模式没有意义
但是假设您需要将TextView添加到视图中,那么您将需要创建一个带有ImageView(将其id定义为R.id.image)和TextView(将其id定义为R.id.text)的自定义布局文件
因此,您的代码如下所示:(我将省略未更改的部分)
ViewHolder背后的想法是避免重新绑定。区分行为也很有用
但正如@cricket_007所评论的,您应该使用RecyclerView,这使您有义务查看持有者:)