CursorLoader

これまでカスタムの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つアイテムがあって
3つアイテムがあって

3つアイテムがあって、

Insertを選択
Insertを選択

Insertを選択すると、

4つになる
4つになる

4つになる。

Sample/android/CursorLoader/CursorLoader/src/CursorLoader at master · bg1bgst333/Sample · GitHub