findViewById findet falsche View

  • Hallo,


    ich habe für meine MainActivity 2 Layouts: eins für die Orientierung Portrait und eins für Landscape


    Wenn ich durch das Drehen des Handys die Orientierung wechsele dann findet in einer Funktion findViewById() das falsche Item:



    Liegt das vielleicht an dem runOnUiThread?
    An alle anderen Stellen im Quellcode funktioniert es, nur in dieser Funktion nicht.
    Muss ich nach dem Wechsel der Orientierung noch etwas bestimmtes beachten?


    Vielen Dank für Eure Hilfe,
    Gruß
    LastPub

  • Hallo
    Das liegt daran das beim Handy drehen die Activity zerstört und neu gestartet wird. Auch die onCreate wird neu duchlaufen somit auch das Layout neu geladen. Es werden für alle Views neue Objekte erstellt.


    Dein Thread läuft weiter der bekommt nichts mit somit ist die ID nicht mehr gültig.


    Eine Möglichkeit wäre eine public Klassenvariable (staic Instanzvariable) zu benutzen.

Jetzt mitmachen!

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