TextView verschwindet beim Drehen des Geräts

8

Ich schreibe eine Telefon-Dialer-App für Android. Ich habe ein Layout für die Tastatur erstellt, das ein TextView und 10 Tasten enthält. Tasten sind als Tasten für 10 Ziffern (0 bis 9) und TextView ist für die Anzeige der Zahl nach Tasten gedrückt.

In meiner App hänge ich den Text ("0" oder "1" usw.) an den TextView für jede gedrückte Taste an. Wenn ich die Schaltflächen 1, 2, 3 gedrückt habe, ist der Text in TextView 123 . Das Problem ist, Nehmen wir an, der Bildschirm ist im Querformat und TextView enthält 123, wenn ich es im Hochformat Modus kein Text auf TextView drehen.

Bitte helfen Sie mir diesbezüglich.

    
Yugandhar Babu 16.01.2012, 11:37
quelle

4 Antworten

5

Bitte überprüfen Sie die Änderung der Ausrichtung, wenn create method aufgerufen wird. Dies erfordert, dass alle Ansichten erneut erstellt werden. Sie müssen also eine der folgenden Methoden anwenden:

  1. Verwenden Sie die onSavedInstance-Methode, und speichern Sie die Zustände der zu bündelnden Komponenten / Ansichten.
  2. Verwenden Sie einfach folgenden Flag in Ihrer Manifest-Datei im Aktivitäts-Tag android: configChanges="keyboardHidden | orientation". wie unten:

    %Vor%
jeet 16.01.2012, 12:02
quelle
13

Was @jeet empfohlen hat, funktionierte nicht für mich. Ich musste "screenSize" hinzufügen. Dies ist die Zeile, die Sie in Ihrer Datei "manifest.xml" im Knoten " <activity> " Ihrer Aktivität hinzufügen sollten:

%Vor%

Somit könnte der vollständige Knoten so aussehen:

%Vor%     
user160446 24.03.2014 00:37
quelle
7

Der Grund dafür ist, dass Android die Aktivität grundsätzlich zerstört und jedes Mal neu erstellt, wenn Sie das Gerät drehen. Dies dient hauptsächlich dazu, verschiedene Layouts basierend auf Hoch- / Querformat zu ermöglichen.

Der beste Weg, dies zu handhaben, ist, alle Daten zu speichern, die Sie innerhalb der Aktivität Bundle , indem Sie auf das onSavedInstance-Ereignis antworten (kurz bevor Android die Aktivität zerstört) und dann diese im standard onCreate-Ereignis erneut anwenden.

Obwohl Sie der configChanges-Eigenschaft "orientation" hinzufügen können, sollten Sie bedenken, dass Sie Android im Grunde sagen, dass Sie alles, was mit der Orientierungsänderung zusammenhängt, bearbeiten - einschließlich Layoutänderungen , usw.

    
Digital_Utopia 16.01.2012 12:07
quelle
0

Wenn jemand immer noch Probleme hat ... hat das den Trick für mich gemacht

%Vor%

Sie speichern grundsätzlich alle Werte, die Sie vor dem Drehen (das heißt, wenn onSaveInstanceState aufgerufen wird) in ein Bundle und nach der Rotation (onRestoreInstanceState) ziehen Sie einfach alle Werte aus Bundle. Nur um zu verdeutlichen, TVNazivPodatka und TVEnotaMere sind TextView-Widgets.

... mit Hilfe von So verhindern Sie benutzerdefinierte Sichten vom Statusverlust über Bildschirmausrichtung hinweg

    
user8392516 02.08.2017 08:35
quelle

Tags und Links