2012-07-25 223 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); 
} 

這裏一切工作正常。 但是,如果你關注的超級參數超級super(context,DATABASE_NAME,null,SCHEMA_VERSION);。我無法理解null參數。我知道在這裏我們必須通過SQLiteDatabase.CursorFactory對象。

但是怎麼樣?那有什麼用?

回答

47

傳遞null的原因是您希望標準SQLiteCursor行爲。如果你想實現specialized Cursor,你可以通過擴展Cursor class來獲得它(這是爲了對查詢結果進行額外的操作)。在這些情況下,您可以使用CursorFactory類來返回Cursor實現的實例。以下是一個

SQLiteDatabase.CursorFactory DOC

用於允許調用查詢時返回遊標的子類的文檔。

+11

你有沒有什麼時候你想要這樣做的例子? – Roel 2016-02-03 08:37:21