2012-07-25 15 views
34

He creado una base de datos extendiendo la clase SQLiteOpenHelper. Y es creado también. Este es el código que estoy pegando¿Cuál es el uso de SQLiteDatabase.CursorFactory en 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); 
} 

Aquí todo está funcionando bien. Pero si se centra en los parámetros, pase en super super (context, DATABASE_NAME, null, SCHEMA_VERSION);. No puedo entender el parámetro nulo. Sé que aquí tenemos que pasar el objeto SQLiteDatabase.CursorFactory.

¿Pero cómo? ¿Y de qué sirve eso?

Respuesta

47

El motivo de pasar nulo es que desea el comportamiento estándar SQLiteCursor. Si desea implementar un specialized Cursor, puede obtenerlo extendiendo el Cursor class (esto es para realizar operaciones adicionales en los resultados de la consulta). Y en estos casos, puede usar la clase CursorFactory para devolver una instancia de la implementación de su Cursor. Aquí está el documento para que

SQLiteDatabase.CursorFactory DOC

Se utiliza para permitir volver subclases del cursor cuando se llama a consulta.

+11

¿Tiene un ejemplo de cuándo podría querer hacer eso? – Roel

Cuestiones relacionadas