CursorAdapter


一般书里面也没有介绍如何使用CursorAdapter,要定制自己的CursorAdapter, 要覆盖newView, bindView和changeCursor. 现在以ListView为例来说明:

CursorAdapter



从上面可以看出,listView不是每次都会调用newView,所以每个item的view对象只会被实例化一次。而每次要绘制item之前,一定会调用bindView。这是动态绑定。如果记录被修改了,在ListView会实时更新。如果要实现数据的延迟加载,可以在bindView中先加载,再启动后台线程加载。

对于那些不用到数据库的应用,也可以用MatrixCursor来生成cursor对象。



看这里:
http://stackoverflow.com/questions/3535074/getview-vs-bindview-in-a-custom-cursoradapter

或者去看android的CustomAdapter的源码.
CustomAdapter覆盖了BaseAdapter的getView方法,并在里面调用了newView()和bindView().所以你就知道这三个方法的调用关系了吧。

adapter的机制和list的机制有关,其实,无论你实际数据项有多少,显示在屏幕上的只有固定个数的item(取决于list的高或宽)。
在list滑动时,判断是否有Item已经滑出屏幕,滑出去的item被释放掉,加入新的item并显示。每次加入新的item就要调用getView()方法了。
打log的话,你会看到,只要你滑动的距离超过一个item项的高度,就会调用一次getView()

看这里:
http://stackoverflow.com/questions/3535074/getview-vs-bindview-in-a-custom-cursoradapter

或者去看android的CustomAdapter的源码.
CustomAdapter覆盖了BaseAdapter的getView方法,并在里面调用了newView()和bindView().所以你就知道这三个方法的调用关系了吧。

adapter的机制和list的机制有关,其实,无论你实际数据项有多少,显示在屏幕上的只有固定个数的item(取决于list的高或宽)。
在list滑动时,判断是否有Item已经滑出屏幕,滑出去的item被释放掉,加入新的item并显示。每次加入新的item就要调用getView()方法了。
打log的话,你会看到,只要你滑动的距离超过一个item项的高度,就会调用一次getView()

你可能感兴趣的:(Adapter)