當資料來源是cursor,顯示界面為ListView就可以很方便的使用CursorAdapter
extends CursorAdapter的時候需要override bindView()以及newView()
bindView會在顯示每一個item的時候被呼叫
newView則會在需要的時候被呼叫,譬如說第一次建立此位置的View時,或是此位置的View已經被回收時
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view == null || cursor == null)
return;
String bucketName = null, displayName = null;
...
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return inflater.inflate(R.layout.media_item, null);
}
如果總共有100個item,銀幕上最多顯示8個item
那畫面顯示出來時newView()/bindView()就會分別被呼叫8次,滑動時就只會呼叫bindView(),偶而才會呼叫newView()