これまでカスタムのCursorAdapterは、終了時にCursorを閉じるようにしてきたが、予期せず終了することも考えると、Cursorを自動で管理してくれた方がいいわけで。
CursorLoaderを使うと、その部分は書かなくてよくなる。
Loaderというと、AsyncTaskLoaderを以前扱ったとおもう。あのような使い方になる。
CursorLoader | Android Developers
AndroidManifest.xmlは、
今回は、普通のリストビューなので、CustomContentProviderだけ。
メニューアイテムはmenu_item_insertのみ。
list_item.xmlは、
list_item_text1, list_item_text2と今回は2つ。
activity_main.xmlは、
ListViewのみ。
CustomContentProvider.javaは、
queryとinsertの実装はしている。
CustomCursorAdapter.javaは、
closeとかchangeCursorとかはない。
CustomDBHelper.javaは、
まあ、普通の作成と更新。
MainActivity.javaは、
LoaderManager.LoaderCallbacksを実装してるので、ちょっと大きくなりがち。
onCreateで、2種類のカラム名のアイテム3つを挿入。
ListViewにアダプタをセット、ローダー初期化もしておく。
menu_item_insertが選択されたら、4つ目のアイテムを挿入。
あとはまあこういう風に書くとしか。
3つアイテムがあって、
Insertを選択すると、
4つになる。
Sample/android/CursorLoader/CursorLoader/src/CursorLoader at master · bg1bgst333/Sample · GitHub