Cursorに行をマニュアルで追加

MatrixCursor、MergeCursorを以下のように使うと、Cursorにマニュアルで行を追加することができます。

def onLoadFinished(loader: Loader[Cursor], cursor: Cursor) {
val matrixCursor = new MatrixCursor(Array("_id", "category_id", "name"))
matrixCursor.addRow(Array[AnyRef]("-1", "all", "All"))
val mergeCursor = new MergeCursor(Array[Cursor](matrixCursor, cursor))
adapter.swapCursor(mergeCursor)
}

MatrixCursorはマニュアルでCursorのデータを作成するCursorです。
コンストラクタでテーブルのカラムを定義し、addRowで実際のデータを挿入します。

MergeCursorは文字通りコンストラクタに渡した複数のCursorが持つデータを全て1つのCursorにマージしたCursorです。

上の例はDBから取得したcategory一覧に加えてallというデフォルトのカテゴリを追加する際に使用しています。