41

SQLiteOpenHelperクラスを拡張してデータベースを作成しました。そして、その作成も。これは私が貼り付けているコードです

public Imagehelper(Context context) {
    super(context, DATABASE_NAME, null, SCHEMA_VERSION);

    cntxt = context;
    filename = Environment.getExternalStorageDirectory();

    DATABASE_FILE_PATH_EXTERNAL = filename.getAbsolutePath()+File.separator+DATABASE_NAME;
    Log.i("Log", ":"+DATABASE_FILE_PATH_EXTERNAL);
}

ここではすべてが正常に機能しています。ただし、パラメータに焦点を当てると、super super(context、DATABASE_NAME、null、SCHEMA_VERSION);で渡されます。。nullパラメータを理解できません。ここでは、SQLiteDatabase.CursorFactoryオブジェクトを渡す必要があることを知っています。

でもどうやって?そして、それの用途は何ですか?

4

1 に答える 1

57

SQLiteCursornullを渡す理由は、標準の動作が必要なためです。を実装するspecialized Cursor場合は、を拡張することで取得できますCursor class(これはクエリ結果に対して追加の操作を行うためのものです)。このような場合、CursorFactoryクラスを使用してCursor実装のインスタンスを返すことができます。これがそのための文書です

SQLiteDatabase.CursorFactory DOC

クエリを呼び出すときにカーソルのサブクラスを返すことができるようにするために使用されます。

于 2012-07-25T05:42:43.803 に答える