2016-05-20 9 views
0

Ich entwickle eine App zum Erstellen von Vokabeln, die Daten in einer SQLite-Datenbank speichert. Ich habe eine Kategorie für verschiedene Arten von Wortschatz, zum Beispiel eine Kategorie für GMAT. Jede dieser Kategorien ist eine Aktivität und hat eine eigene Tabelle, in der ich eine Liste mit Standard-Vokabeln ablege. Die Klassen für diese Kategorien erweitern alle eine abstrakte Klasse voller Methoden für die Menüoptionselemente, z. B. Suchen, Hinzufügen und Löschen von Vocab-Funktionen.Erstellen Sie mehrere Instanzen einer vorhandenen ListView-Klasse dynamisch in Android

Jetzt habe ich 4 Kategorien, was bedeutet, ich habe 4 Tabellen in meiner SQLite-Datenbank und eine Aktivität für jede der Kategorien. Ich möchte jedoch zulassen, dass der Benutzer beim Klicken auf eine Schaltfläche neue Kategorien hinzufügen kann. Die neu hinzugefügte Kategorie ist identisch mit den 4 Kategorien, die ich bereits erstellt habe. Daher wird jede neu hinzugefügte Kategorie dasselbe Layout, dieselben Menüelemente und dieselben Funktionen haben. Ich habe an eine Lösung gedacht, die zuerst diese Kategorien erstellt, sie aber für die Benutzer unsichtbar macht und sie dem Benutzer nur dann anzeigt, wenn der Benutzer eine Aktion ausführt, um neue Kategorien hinzuzufügen. In diesem Fall erstelle ich die Aktivitäten und Tabellen im Voraus und verstecke sie einfach am Anfang. Bei dieser Lösung gibt es jedoch eine Begrenzung für die Anzahl der Kategorien, die der Benutzer hinzufügen kann. Dies ist zwar in Ordnung, aber nicht optimal. Es wird auch dazu führen, dass ich viele potenziell ungenutzte Aktivitäten erschaffe, was sehr ineffizient erscheint.

Ich bin auf Beiträge wie this und this gestoßen, aber es adressiert mein Problem nicht. Wenn ich nicht klar mit meinem Problem artikulieren, ist es wie die Musik Spotify-Software, wo ich nicht weiß, wie der Benutzer neue Wiedergabelisten dynamisch hinzufügen können. Vielen Dank für Ihre Hilfe im Voraus!

Update: mit Jürgens Vorschlag kann ich meine Datenbank um nur eine Tabelle neu zu gestalten. Daher muss ich Tabellen nicht mehr dynamisch erstellen, aber ich muss immer noch eine Möglichkeit finden, mehrere Instanzen einer Aktivität dynamisch zu erstellen.

+1

Absolut nicht das tun !! Das Tabellendesign muss fest sein, unabhängig davon, welche Daten der Benutzer eingibt. Ändern Sie Ihr Design. Zum Beispiel gibt es eine Tabelle mit den Kategorien - alle Kategorien. –

+0

Danke für Ihre Antwort! Ok, ich kann meine Datenbank so umgestalten, dass es nur eine Tabelle mit einer zusätzlichen Spalte gibt, die angibt, um welche Art von Tabelle es sich handelt. Wie kann ich jedoch mit dieser Änderung das in meinem Beitrag/Problem angegebene Problem beheben? Danke noch einmal! –

+0

Verwenden Sie eine Aktivität mit Ihrer 'ListView' und die' Spinner' mit allen Kategorien – pskink

Antwort

0

Nachdem ich meine Datenbank nach Juergens Vorschlag neu gestaltet habe. Ich war in der Lage, dieses Problem zu umgehen, indem ich eine generische Aktivität eröffnete und sie basierend auf dem Extra, das ich in meine Absicht einfügte, änderte. Im Wesentlichen gibt es nur eine einzige Aktivität, die Daten basierend auf dem, was an sie weitergegeben wird, zieht und anzeigt.

Verwandte Themen