私は Android 開発を始めたばかりでListActivity
、 、SQLiteDatabase
、およびを使用する単純なアプリを作成していSimpleCursorAdapter
ます。
Android 開発者の Web サイトには、SimpleCursorAdadpter
. 実装を見ると、基になるデータベースがユーザー アクションの結果として変更されるたびにListActivity
、次の関数が明示的に呼び出されてリストが「更新」されます。
private void fillData() {
// Get all of the rows from the database and create the item list
mNotesCursor = mDbHelper.fetchAllNotes();
startManagingCursor(mNotesCursor);
// Create an array to specify the fields we want to display in the list (only TITLE)
String[] from = new String[]{NotesDbAdapter.KEY_TITLE};
// and an array of the fields we want to bind those fields to (in this case just text1)
int[] to = new int[]{R.id.text1};
// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, mNotesCursor, from, to);
setListAdapter(notes);
}
SimpleCursorAdapter
毎回新しいが作成され、 でビューにバインドされているように見えますsetListAdapter()
。これは最良/最もクリーンな実装ですか? これが Android Web サイトにあるという事実は、信頼性を高めますが、CursorAdapter
ドキュメントを見てchangeCursor()
、上記のものよりもクリーンな実装に役立つと思われる方法があることを確認しましたが、何がわからないのですか?のように見えるかもしれません。
何も心配していないだけかもしれませんが、C/C++ の世界から来て、データベースに行を挿入/削除するたびにこの「新しい」オブジェクトが作成されるのを見るのは少し面倒です。