Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to hide specific rows of a Cursor in android

I have a cursor, and it got, lets say, 40 rows, I want to hide some rows when the user check a checkbox.

one way is run the query again on the cursor, but it doesn't help me because the condition is done by Java (calculate balance, with many logic).

I need something that will get the current row, and return if it can be show or not.

any help will be appreciated.

like image 641
Noam Avatar asked Apr 23 '10 16:04

Noam


1 Answers

i inherit CursorWrapper and override some of the methods, here is the code:

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);
    }
}
}

thanks for anyone that try to help!

like image 103
Noam Avatar answered Sep 21 '22 18:09

Noam