-1

Ich habe eine sehr einfache Frage zum Laden des Layouts in der Hauptaktivität. Ich habe ein einfaches Layout in activity_main.xml definiert, die in MainActivity der OnCreate() geladen wird mitSpeichern/Laden eines Android-Layouts mit zuvor programmatisch hinzugefügten Schaltflächen

setContentView(R.layout.activity_main). 

dann auf eine Schaltfläche klicken, ich eine andere Ansicht Artikel (Knopf) hinzufügen, die richtig erscheint.

Aber wenn die App geschlossen und wieder geöffnet wird, muss ich beibehalten, was beim letzten Schließen der App hinzugefügt wurde. Wie mache ich das?

Ich habe hier einige Fragen durchsucht, aber die meisten von ihnen sprechen über das Speichern von Werten mit SharedPreferences oder Speichern von Zustand, aber es ist nicht klar, ob das Layout auch gespeichert werden kann.

Vielen Dank im Voraus.

+0

noch ein ... Sie müssen Werte speichern und dann die Schaltflächen basierend auf ihnen wieder erstellen – Selvin

Antwort

0

Ich denke, die beste Lösung ist die neuesten State-Werte mit SharedPreferences zu speichern, weil es eine gute Möglichkeit ist, um alle einfachen Daten für eine lange Zeit zu speichern.

Speichern von Zustand über saveInstanceState ist eine kurzfristige Lösung und wenn Sie Ihre App vollständig schließen, wird gespeicherte Instanz für immer weg sein.

Mögliche Lösung:

Erstens können Sie kein Layout speichern, wie Sie denken, Sie können jedoch das Layout der parameters und andere Funktionen wie variables bekommen, dann können Sie diese mithilfe von SharedPreferences speichern.

Zweitens sollten Sie überprüfen, ob es irgendwelche gespeicherten Layout-Status gibt, wenn Sie die Aktivität starten. Falls vorhanden, können Sie die zuvor gespeicherten Parameter verwenden, um Ihr Layout dynamisch/programmgesteuert hinzuzufügen.

+0

Danke für die Antwort, also für Schaltflächen auf einem linearen Layout innerhalb eines linearen Layouts speichern würde ich den Text, Abmessungen, Speicherort speichern müssen usw. für jede Schaltfläche und laden Sie sie dann. Gibt es eine Methode, die aufgerufen werden kann, wenn der Benutzer die App beendet, die diese Informationen speichern kann? – Bill

+0

@Bill wie ich bereits erwähnt habe, gibt es keine Verknüpfung, um es zu tun, müssen Sie es manuell tun, wie meine Beispiellösung oben. –

Verwandte Themen