Android(安卓)CursorAdapter
16lz
2021-01-26
CursorAdapter:
继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁.
使用时,Cursor结果集中必须包含列名为“_id”的列,解决方法:
1、修改表结构. 一般建表时都会建立"_id“列为主键
2、查询时使用别名: select personid as _id.
为什么需要”_id“列:在CursorAdapter的init()和changeCursor()中会使用
void init(Context context, Cursor c, int flags) { if ((flags & FLAG_AUTO_REQUERY) == FLAG_AUTO_REQUERY) { flags |= FLAG_REGISTER_CONTENT_OBSERVER; mAutoRequery = true; } else { mAutoRequery = false; } boolean cursorPresent = c != null; mCursor = c; mDataValid = cursorPresent; mContext = context; mRowIDColumn = cursorPresent ? c.getColumnIndexOrThrow("_id") : -1; if ((flags & FLAG_REGISTER_CONTENT_OBSERVER) == FLAG_REGISTER_CONTENT_OBSERVER) { mChangeObserver = new ChangeObserver(); mDataSetObserver = new MyDataSetObserver(); } else { mChangeObserver = null; mDataSetObserver = null; } if (cursorPresent) { if (mChangeObserver != null) c.registerContentObserver(mChangeObserver); if (mDataSetObserver != null) c.registerDataSetObserver(mDataSetObserver); } }
(1)newView:并不是每次都被调用的,它只在实例化的时候调用,数据增加的时候也会调用,但是在重绘(比如修改条目里的TextView的内容)的时候不会被调用 (2)bindView:从代码中可以看出在绘制Item之前一定会调用bindView方法它在重绘的时候也同样被调用
引用:
Android之CursorAdapter用法
http://www.bubuko.com/infodetail-734550.html
更多相关文章
- Android(安卓)插件化分析(3)- Activity启动流程
- android 手机欢迎界面不显示的问题?
- android语言三
- 【Android(安卓)Developers Training】 16. 暂停和恢复一个Activ
- Android(安卓)调用系统相机拍照并获取图片
- android与H5交互方法简介
- Unity调用Android。。。哈哈。。可以干坏事啦。。。。。。
- android APK 调用G—sensor驱动的过程
- 禁止其他应用访问自己的组件