2010-04-23 10 views
5

Ich habe einen Cursor, und es hat, sagen wir, 40 Zeilen, ich möchte einige Zeilen ausblenden, wenn der Benutzer ein Kontrollkästchen aktiviert.So blenden Sie bestimmte Zeilen eines Cursors in Android

One-Way wird die Abfrage erneut auf dem Cursor ausgeführt, aber es hilft mir nicht, weil die Bedingung von Java (Balance, mit vielen Logik) durchgeführt wird.

Ich brauche etwas, das die aktuelle Zeile erhält und zurückgibt, wenn es angezeigt werden kann oder nicht.

jede Hilfe wird geschätzt.

Antwort

5

i CursorWrapper erben und einige der Methoden außer Kraft setzen, hier ist der 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); 
    } 
} 
} 

Dank für alle, die versuchen zu helfen!

+0

Wie genau verwenden Sie das? –

+0

@SteveKamau, beachten Sie, dass dieses Stück Code fast 6 Jahre alt ist. Ich bin mir nicht sicher, ob das die beste Möglichkeit ist, Zeilen in diesen Tagen zu verstecken. Aber was genau fehlt? – Noam

Verwandte Themen