SQLite-Daten zu einem RecyclerView

Die App hat Daten in einer SQLite-Datenbank. Die UI ist in erster Linie ein RecyclerView. Die Frage ist, wie man am besten, um Daten aus der Datenbank in die Benutzeroberfläche zu übertragen, während halten Sie den Haupt-Thread?

Ich habe ursprünglich geplant, einen CursorLoader, ContentProvider und RecyclerView zu verwenden. Aber das Lesen ist so aussehen wie RecyclerView hat keine Out-of-the-Box-Unterstützung für Cursor-gelieferte Daten. Dang

  • Keyboard versteckt EditTexts in Fragments
  • Warnung: Stellen Sie keine Android-Kontextklassen in statische Felder ein. Dies ist ein Speicherleck (und auch bricht Instant Run)
  • Android Ant bauen auf einem Projekt mit zwei Quellordnern auf
  • Android Facebook-Autorisierung - kann sich nicht anmelden, wenn die offizielle Facebook App installiert ist
  • Gradle Kompilierungsfehler "Keine Signatur der Methode"
  • Formular-Validierungsbibliothek für Android?
  • Das verlässt mich dann mit ein paar anderen Optionen …

    1. AsyncTask, um die Daten zu laden, legte sie in Modellobjekte und gehe in den RecyclerView Adapter. Abgesehen davon, dass es hässlich ist, ist es nicht config-change freundlich.

    2. Ein benutzerdefinierter Loader, der die Daten aus SQL lädt und in Modellobjekte drückt.

    3. Verwenden Sie einen Cursor-Loader, und wenn es den Cursor zurückgibt, iterieren Sie ihn, um die Daten in Modellobjekte zu schieben. Ich vermute, dass dies auf dem Hauptfaden auftreten und die Leistung beschädigen könnte.

    4. Benutze Otto, um eine Anforderungsnachricht zu senden, um Daten anzufordern und dann eine Modellobjektsammlung durch Rückmeldung zurückzugeben. Möglicherweise gibt es ~ 500 Objekte, so dass ich glaube, ich könnte lieber Otto missbrauchen.

    Wenn ich eine Sammlung von Modellobjekten anstelle eines Cursors verwende, sehe ich weniger Nutzen für einen ContentProvider, und ich verliere auch die Fähigkeit für die Benutzeroberfläche, die Datenänderungen automatisch zu aktualisieren (was nützlich sein kann).

    Keine dieser Optionen spricht viel an, gibt es einen besseren Weg? Die app ist unter zeitdruck so was auch immer es braucht, um ziemlich schnell zu implementieren. Leider muss die Benutzeroberfläche horizontal scrollen und nur auf Lollipop zielen, also RecyclerView scheint eine bessere Wette als ListView.

  • Kann ich android: layout_toLeftOf programmatisch?
  • Ionic: Wie bekomme ich Ion-Item auf mehreren Zeilen?
  • IllegalStateException beim Ersetzen eines Fragments
  • Wo befindet sich die Datei build.gradle für mein Android-Projekt?
  • Wiederverwendung in Fragmenten android ansehen
  • Wie kann man beim ersten Start das erste Element einer ListView als Standard auswählen?
  • One Solution collect form web for “SQLite-Daten zu einem RecyclerView”

    Benutze diesen einfachen Adapter https://gist.github.com/Shywim/127f207e7248fe48400b , alternativ könntest du android.support.v17.leanback.widget.ItemBridgeAdapter mit android.support.v17.leanback.widget.CursorObjectAdapter verwenden, aber warum man eigene machen soll Leben härter

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.