十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
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()
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 ListbuildModels() { 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; } }