2012-07-25 4 views
34

私はSQLiteOpenHelperクラスを拡張してデータベースを作成しました。そして、その創造も。これは貼り付けのコードですAndroidでSQLiteDatabase.CursorFactoryをどのように使用していますか?

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); 
} 

ここではすべて正常に動作しています。 しかし、あなたがスーパーに渡すパラメータに焦点を当てる場合スーパー(コンテキスト、DATABASE_NAME、null、SCHEMA_VERSION);。 nullパラメータを理解できません。ここで私はSQLiteDatabase.CursorFactoryオブジェクトを渡さなければならないことを知っています。

しかし、どのように?そして、それは何ですか?

答えて

47

nullを渡す理由は、標準SQLiteCursorの動作が欲しいということです。 specialized Cursorを実装する場合は、Cursor classを拡張して取得できます(これはクエリ結果に対して追加の操作を行うためのものです)。このような場合は、CursorFactoryクラスを使用して、Cursor実装のインスタンスを返すことができます。ここでは、クエリを呼び出すときに、カーソルのサブクラスを返すことが可能に使用した

SQLiteDatabase.CursorFactory DOC

のための文書があります。

+11

あなたはそれをしたいときの例がありますか? – Roel

関連する問題