Android中的SQLiteDatabase.CursorFactory有什么用?

时间:2012-07-25 05:28:57

标签: android sqlite

我通过扩展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);
}

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

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

1 个答案:

答案 0 :(得分:52)

传递null的原因是您需要标准的SQLiteCursor行为。如果要实现specialized Cursor,可以通过扩展Cursor class来获取它(这是为了对查询结果执行其他操作)。在这些情况下,您可以使用CursorFactory类返回Cursor实现的实例。这是

的文件

SQLiteDatabase.CursorFactory DOC

  

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