Eclipse无法找到Database方法

时间:2013-08-28 22:02:51

标签: android inheritance

我正在尝试定义SQLiteCursor的子类,以便重新定义它的一些功能(我使用fillWindow作为示例)。但是,我在使用数据库函数时遇到了一些问题。

下面方法中的代码是从SQLiteCursor的源代码中复制的(我刚刚为了这个问题删除了一些垃圾)。

package com.malabarba.util;

import android.database.CursorWindow;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteCursorDriver;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteQuery;
import android.util.Log;

public class HugeCursor extends SQLiteCursor {
    private SQLiteQuery mQuery;

    public HugeCursor(SQLiteDatabase db, SQLiteCursorDriver driver, String editTable, SQLiteQuery query, int c) {
        super(db, driver, editTable, query);
        mQuery = query;
    }

    private void fillWindow(int requiredPos) {        
        int startPos = DatabaseUtils.cursorPickFillWindowStartPosition(requiredPos, 0);
        mQuery.fillWindow(mWindow, startPos, requiredPos, false);
        mCursorWindowCapacity = mWindow.getNumRows();
    }
}

所有问题似乎都与未找到的方法有关:

  1. 对于DatabaseUtils类型,方法cursorPickFillWindowStartPosition(int,int)是未定义的。
  2. 对于SQLiteQuery类型,未定义方法fillWindow(CursorWindow,int,int,boolean)。
  3. 第1项和第2项中的功能都是定义的而不是私有的,为什么我不能使用它们?

1 个答案:

答案 0 :(得分:1)

我认为你正在看一些旧的代码。 fillWindow()now protected。不知道在DatabaseUtils上发生了什么。