2012-07-25 11 views
34

Ho creato un database estendendo la classe SQLiteOpenHelper. E è anche creato. Questo è il codice che sto incollandoQual è l'uso di SQLiteDatabase.CursorFactory in Android?

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

Qui tutto funziona correttamente. Ma se ti concentri sui parametri passa in super super (context, DATABASE_NAME, null, SCHEMA_VERSION);. Non sono in grado di capire il parametro null. So che qui dobbiamo passare l'oggetto SQLiteDatabase.CursorFactory.

Ma come ?? E a che cosa serve?

risposta

47

Il motivo del passaggio null è il comportamento standard SQLiteCursor. Se si desidera implementare un specialized Cursor è possibile ottenerlo estendendo il Cursor class (questo è per eseguire ulteriori operazioni sui risultati dell'interrogazione). E in questi casi, è possibile utilizzare la classe CursorFactory per restituire un'istanza dell'implementazione del Cursore. Ecco il documento per che

SQLiteDatabase.CursorFactory DOC

utilizzato per consentire il ritorno sottoclassi di cursore quando si chiama query.

+11

Avete un esempio di quando potreste volerlo fare? – Roel

Problemi correlati