Android中的SQLiteDatabase.CursorFactory有什么用?

Nar*_*Pal 38 sqlite android

我通过扩展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);
}
Run Code Online (Sandbox Code Playgroud)

这里一切都很好.但是如果你专注于超级超级参数传递(context,DATABASE_NAME,null,SCHEMA_VERSION); .我无法理解null参数.我知道我们必须传递SQLiteDatabase.CursorFactory对象.

但是怎么样?那有什么用?

BBd*_*dev 53

传递null的原因是您需要标准SQLiteCursor行为.如果你想实现一个,specialized Cursor你可以通过扩展Cursor class(这是为了对查询结果进行额外的操作)来实现它.在这些情况下,您可以使用CursorFactory该类返回Cursor实现的实例.这是该文件

SQLiteDatabase.CursorFactory DOC

用于在调用查询时允许返回Cursor的子类.

  • 你有什么时候想做这个的例子吗? (15认同)