Android通过ViewHolder优化适配器的实现方法(必看)-创新互联

Adapter类的定义:

从事四川乐山服务器托管,服务器租用,云主机,网站空间域名注册,CDN,网络代维等服务。

Adapter对象是AdapterView和底层数据见的桥梁。Adapter用于访问数据项,并且负责为数据项生成视图

AdapterView是一个抽象类,用于那些需要通过Adapter填充自身的视图,其常见子类是ListView。显示AdapterView时会调用Adapter的getView()方法创建并添加每个子条目的视图。Adapter的getView()方法就是用来创建这些视图的,Adapter并不会为每行数据都创建一个新视图,而是提供了回收旧视图的方法。运行机制简单说就是当getView()方法被调用是,如果convertView参数不为null,就使用convertView,不用新建视图,通过convertView.findViewById()方法获取每个UI控件的引用,然后使用与当前项的位置绑定的数据来填充视图

为了优化,使用ViewHolder模式,ViewHolder是一个静态类,可以用于保存每行的视图以避免每次调用getView时都会调用findViewById()

Android 通过ViewHolder优化适配器的实现方法(必看)

public class Hack25Activity extends ListActivity {
  private static final int MODEL_COUNT = 30;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(new ModelAdapter(this, 0, buildModels()));
  }

  private List buildModels() {
    final ArrayList ret = new ArrayList(MODEL_COUNT);
    for (int i = 0; i < MODEL_COUNT; i++) {
      final Model model = new Model();
      model.setImage(R.mipmap.ic_launcher);
      model.setText1("Name " + i);
      model.setText2("Description " + i);
      ret.add(model);
    }
    return ret;
  }
}

当前名称:Android通过ViewHolder优化适配器的实现方法(必看)-创新互联
本文来源:http://ybzwz.com/article/gspep.html