Listview 继承BaseAdapter基本实现
public class MyAapter extends BaseAdapter { private Context context; private List<String> list; public MyAapter(Context context, List<String> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); }//这个方法返回了在适配器中所代表的数据集合的条目数 @Override public Object getItem(int position) { return list.get(position); }//这个方法返回了数据集合中与指定索引position对应的数据项 @Override public long getItemId(int position) { return position; }//这个方法返回了在列表中与指定索引对应的行id @Override public View getView(int position, View convertView, ViewGroup parent) { convertView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cover,null); return convertView; }//这个方法返回了指定索引对应的数据项的视图,还没写完 }
Listview 继承BaseAdapter优化模拟
public class MyAdapterTest extends BaseAdapter { @Override public int getCount() { return 0; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cover, null); holder = new ViewHolder(); holder.img = convertView.findViewById(R.id.image_cover); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.img.setImageResource(R.drawable.fengjing1); return convertView; } static class ViewHolder { public ImageView img; } }
ListVeiw 工作原理详解 https://www.jianshu.com/p/4e8e4fd13cf7