私はカーソルを持っています。たとえば、40 行になりました。ユーザーがチェックボックスをオンにしたときに、いくつかの行を非表示にしたいと考えています。
1つの方法は、カーソルでクエリを再度実行することですが、条件がJavaによって行われるため、役に立ちません(多くのロジックでバランスを計算します)。
現在の行を取得し、表示できるかどうかを返すものが必要です。
どんな助けでも大歓迎です。
私はカーソルを持っています。たとえば、40 行になりました。ユーザーがチェックボックスをオンにしたときに、いくつかの行を非表示にしたいと考えています。
1つの方法は、カーソルでクエリを再度実行することですが、条件がJavaによって行われるため、役に立ちません(多くのロジックでバランスを計算します)。
現在の行を取得し、表示できるかどうかを返すものが必要です。
どんな助けでも大歓迎です。
私は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);
}
}
}
助けようとする人に感謝します!