Frage

Ich habe eine Datenbank mit mehr als 6000 Einträge. Ich bin mit diesem Beispiel http: // eshyu .wordpress.com / 2010/08/15 / Adapter Cursor-mit-Alphabet-indexierten Schnitt-Header / um den Inhalt anzuzeigen. Aber jetzt ist die Aktivität nicht in der Lage, es zu handhaben. Ich erhalte eine ANR jedes Mal Dialog. Wie kann ich diesen Umstand effizient umgehen?

War es hilfreich?

Lösung

Es macht keinen Sinn, durch jeden Eintrag zu gehen und den Indexer auf Wich Abschnitt bittet Eintrag gehört. In Ihrem Fall könnte der Indexer 6000 Binärsuchen tun. Dann dieses Ergebnis in einer Karte Puting, die unter 30 Einträge und macht viele Überschreibungen haben.

Es ist auch keine gute Idee, die sectionToPosition Karte missbrauchen eines Startabschnitt Postion zu erstellen.

A. Sie bereiten entweder eine Tabelle die Statistiken enthält, die der beste Weg wäre, so viele Daten zu verarbeiten.

B. Sie können die Datenbank verwenden Anzahl der Einträge für jeden Abschnitt zu zählen und zu Ihrem eigenen Abschnitt Start pos Karte bauen.

SELECT UPPER(SUBSTR(LTRIM(side_a), 1, 1)), COUNT(*) FROM cards GROUP BY 1 ORDER BY 1 ASC;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top