5

私はカーソルを持っています。たとえば、40 行になりました。ユーザーがチェックボックスをオンにしたときに、いくつかの行を非表示にしたいと考えています。

1つの方法は、カーソルでクエリを再度実行することですが、条件がJavaによって行われるため、役に立ちません(多くのロジックでバランスを計算します)。

現在の行を取得し、表示できるかどうかを返すものが必要です。

どんな助けでも大歓迎です。

4

1 に答える 1

5

私はCursorWrapperを継承し、いくつかのメソッドをオーバーライドします。コードは次のとおりです。

public class SelectableCursorWrapper extends CursorWrapper {

private HashSet<Integer> mWhichShow;

public SelectableCursorWrapper(Cursor cursor, HashSet<Integer> whichToShow) {
    super(cursor);

    mWhichShow = whichToShow;
}

@Override
public int getCount() {
    return mWhichShow.size();
}

@Override
public boolean moveToPosition(int position) {
    if (position >= super.getCount()) {
        return false;
    }

    if (mWhichShow.contains(position)) {
        return super.moveToPosition(position);
    } else {
        // Recursion on this method to move to the next element properly
        return this.moveToPosition(position + 1);
    }
}
}

助けようとする人に感謝します!

于 2010-04-23T18:36:32.093 に答える