2016-07-19 12 views
0

Dank für all die Hilfe vor kurzem zu zeigen! Eine andere Frage!Android - Die beste Weg, um Daten ohne große Menge von Layout-Dateien

In der App, die ich baue, habe ich derzeit eine Layout-Datei mit einem erweiterbaren lstview, wo Sie 10 Optionen wählen können. Wenn Sie eine dieser Optionen auswählen, wählen Sie weitere 4 Optionen. Ab dem Auswählen der Woche haben Sie dann 3 weitere Optionen. Jede dieser 3 Optionen öffnet derzeit eine neue Aktivität mit einer Listenansicht mit einem Kontrollkästchen und einer Textansicht in jeder Zeile mit jeweils etwa 10 Zeilen.

Anstatt 30 Layout-Dateien zu machen, die wahrscheinlich die App zum Absturz bringen werden (nicht sicher, wie viele es dauern würden, um die App zum Absturz zu bringen), denke ich, dass es einen besseren Weg geben muss. Ich habe nachgeschlagen und kann nicht wirklich finden, wonach ich suche. Ich habe ein wenig über sqlite gelesen, aber brauchen Sie nicht immer noch separate Layoutdateien, um verschiedene Teile der Tabellen aufzurufen? Gibt es eine Möglichkeit, eine einzelne Layoutdatei mit einer Listenansicht zu erstellen und die Listenansicht mit unterschiedlichen Daten aus sqlite zu füllen, je nachdem, woher der Klick in der erweiterbaren Listenansicht kam?

Wenn sie zum Beispiel auf Workout 29 in der erweiterbaren Listenansicht klicken, dann klicken Sie auf Woche 1 und dann auf Tag 1. Kann dieses Layout Daten von sqlite db laden. Dann, wenn sie zurück gehen und Click Workout 30, Woche 2, Tag 3 sagen, das gleiche Layout laden verschiedene Informationen aus der db?

Ich versuche auch, um herauszufinden, wie eine doppelte erweiterbare Liste Ansicht

Dank noch einmal zu machen!

+0

Es würde Tausende von Layout-Dateien benötigen, um eine App zum Absturz zu bringen. Eine App mit nur 30 ist noch ziemlich klein. –

Antwort

1

Sie sollten eine SQLite-Datenbank für alle Ihre Daten verwenden (außer Sie planen, die Daten im Speicher zu halten, was keine gute Idee ist, wenn es eine ziemlich große Menge ist). Sie sollten einfach eine einfache Ansicht erstellen und sie erneut verwenden. Sie müssen einen eigenen Adapter erstellen (ausgehend von BaseExpandableListAdapter für erweiterbare Listenansichten und BaseAdapter für normale Listenansichten) und dann die SQLite-Datenbank nach den von Ihnen benötigten Daten abfragen.

Wenn Sie nur String-Elemente anzeigen, können Sie ArrayAdapter direkt erweitern und dann das Array von Elementen bereitstellen, die für die normale Liste angezeigt werden sollen.

Soweit Absturz besteht, gibt es viele Apps, die weit über 30 Layout-Dateien haben. Selbst wenn Sie mit dem Laden vieler Ansichten begonnen haben, wird Android automatisch damit beginnen, Sichten zu zerstören, wenn der Arbeitsspeicher knapp wird und sie neu erstellt werden, wenn dies erforderlich ist.

+0

Danke! Ich denke, dass ich ohne die Datenbank dann in Ordnung sein sollte, da alle Daten Einstrang-Strings sind, die Berechnungen früherer Zahlen sind! Vielen Dank! – LBJ33

2

Also das ist sehr einfach alles, was Sie tun müssen, ist ein DataAdapter für die Listview erstellen. Sie können dann Listenansichtselemente hinzufügen, die an den onclick-Listener gebunden sind. Anschließend können Sie diese Liste löschen und neue Elemente hinzufügen. ein nützlicher Link wäre.

+0

Danke! Ich denke, dass ich ohne die Datenbank dann in Ordnung sein sollte, da alle Daten Einstrang-Strings sind, die Berechnungen früherer Zahlen sind! Vielen Dank! – LBJ33

+0

Denken Sie daran, Ansichten sehr schwer sind, wenn sie es Ihre Anwendung langsam zu laden, verursachen keine Kinder haben. Wenn Sie minimale Kindansichten haben, wird es schneller. Deshalb ist es besser, eine eindimensionale Listenansicht zu erstellen und sie bei Klick zu löschen, weil dann, wenn Sie keine riesige Struktur haben, Android die integrierte Funktion aufruft, um alles neu zu zeichnen. Wenn ich ein Kind verändern würde, zieht es alle Eltern dieses Kindes und seine Brüder und Schwestern im Wesentlichen zurück. – JQluv