0

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. メソッド cursorPickFillWindowStartPosition(int, int) は、タイプ DatabaseUtils に対して未定義です。
  2. メソッド fillWindow(CursorWindow, int, int, boolean) は、タイプ SQLiteQuery に対して未定義です。

項目 1 と 2 の両方の関数が定義されており、プライベートではないのに、なぜそれらを使用できないのですか?

4

1 に答える 1