Inhalte von View Elementen dynamisch austauschen

  • Hallo,
    ich würde gerne die Inhalte von bestimmten View Elementen dynamisch austauschen, z.B. den Inhalt eines Textfeldes und die Bezeichnungen von Buttons. Ansonsten soll sich an der Activity nichts ändern.


    Meine Frage: Ist es in diesem Fall besser, nur die Inhalte der View Elemente auszutauschen oder sollte man für jeden Screen eine neue Activity anlegen, obwohl ja der Aufbau der Screens komplett gleich ist?

  • Hi schwoinbär,


    Zitat

    Ist es in diesem Fall besser, nur die Inhalte der View Elemente auszutauschen oder sollte man für jeden Screen eine neue Activity anlegen, obwohl ja der Aufbau der Screens komplett gleich ist?


    Das kommt darauf an wie gut deine Porgrammier- bzw Android-Kenntnisse sind. Es ist möglich das Layout einer Anwendung komplett dynamisch zu genieren(also ohne XML).
    Diese Gangart führt aber zu einigen Problemen die man berücksichtigen sollte, du hättest zbsp. keine Trennung mehr von Layout und Code, was der Wartbarkeit bzw. Wiederverwendbarkeit ziemlich schwierig macht. Auch bietet die dynamische Erzeugung einige zusätzliche Fehlerquellen und natürlich darfst du die Performanz nicht vergessen, da die Benutzeroberfläche quasi zur Laufzeit erstellt wird.


    Wenn du jetzt nur diese beiden "Screens" hast bist du auf jeden Fall 10 mal schneller, wenn du für jeden eine XML schreibst.


    Mfg Titus

  • Vielen Dank für die Antworten :)


    Ich habe es jetzt so gemacht, dass nach Betätigung des "Weiter"-Buttons ein neues String-Array für den neuen Screen geladen wird. Auf diese Weise kann ich die Activity mehrmals verwenden. Ob das nun die flexibelste Lösung ist, sei mal dahingestellt.

  • Hi schwoinbär,


    interessanter Ansatz aber was passiert eigentlich wenn der Benutzer den Back-Button des Telefons betätigt?
    Ein wechsel von "Screen2" zurück auf "Screen1" wäre erstmal so nicht möglich.


    Mfg Titus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!