2010-04-23 14 views
5

Ho un cursore, e ha ottenuto, diciamo, 40 righe, voglio nascondere alcune righe quando l'utente seleziona una casella di controllo.Come nascondere righe specifiche di un cursore in Android

one way è eseguire nuovamente la query sul cursore, ma non mi aiuta perché la condizione è eseguita da Java (calcolare il saldo, con molte logiche).

Ho bisogno di qualcosa che otterrà la riga corrente, e ritorno se può essere mostrato o meno.

qualsiasi aiuto sarà apprezzato.

risposta

5

ho ereditato CursorWrapper e sovrascrivere alcuni dei metodi, ecco il codice:

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

grazie per tutti coloro che cercano di aiutare!

+0

Come usi esattamente questo? –

+0

@SteveKamau, nota che questo pezzo di codice ha quasi 6 anni. Non sono sicuro che questo sia il modo migliore per nascondere le righe in questi giorni. Ma cosa manca esattamente? – Noam

Problemi correlati