Android共通ListView适配器

继承自BaseAdapter的共通适配器,写起来是真的省事儿。封装得挺干净的,不管是展示数据列表、绑定事件,还是动态更新数据,用起来都比较顺手。尤其是你写多了 ListView,就会发现,省代码=省时间,调试也轻松多了。

这种适配器,适合那些不想每次都从头造轮子的场景。比如展示一个商品列表,或者评论区的留言列表,直接继承一下,重写几个方法就能跑起来,逻辑也清晰。

想系统学一下的,可以看看ListView 基础应用及 Adapter 详解,里面把getView()怎么写讲得挺透的。还有个重写 BaseAdapter 的例子,看着写一遍,你就懂了。

另外,ListView 的多选、翻页这些场景也常见,建议你也顺手看看Android ListView 多选ListView 翻页方法。如果你打算实现增删查功能,那这个简单适配器示例也还不错。

要注意的一点是,getView()里面最好配合ViewHolder用,不然滑动起来容易卡,尤其是数据多的时候。顺手贴下常见写法:

public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder holder;
  if (convertView == null) {
    convertView = LayoutInflater.from(context).inflate(R.layout.item_layout, parent, false);
    holder = new ViewHolder();
    holder.textView = convertView.findViewById(R.id.text);
    convertView.setTag(holder);
  } else {
    holder = (ViewHolder) convertView.getTag();
  }
  holder.textView.setText(dataList.get(position));
  return convertView;
}

如果你经常跟 ListView 打交道,强烈建议封装一个自己的共通 Adapter,代码结构清晰,还能反复复用,效率提高不少。

java 文件大小:1.96KB