Android-Orientierung ändern, ruft onCreate
Habe ich eine Suchmaske, die hat eine Registerkarte für keywords, filtern und eine Suche-Taste, und drei optionalen Registerkarten für die verschiedenen Arten von Ergebnissen (jeweils mit einem ListView
mit einem ArrayAdapter
). Beim starten der Aktivität, kann der Entwickler Optional pass in den Ergebnissen als zusätzliche Parcelable[]
wenn die Suche bereits durchgeführt wurde. In der onCreate()
Methode, die ich erschaffe jeder der drei Registerkarten für die Parcelable[]
Durchlaufen.
Wenn ich eine Suche über die Schaltfläche auf der Registerkarte "filter", lösche ich die tabs und erstellen Sie mit den neuen Ergebnissen, die perfekt funktioniert. Das problem ist, dass, wenn Sie das Gerät drehen, scheint es, dass Android die automatische Ausrichtung Schalt-Unterstützung bildet die gesamte Tätigkeit, Berufung onCreate()
. Dies bedeutet, dass meine Suchergebnisse zurücksetzen, um die Parcelable[]
Durchlaufen beim Start der Aktivität.
Die einzige Lösung, die ich habe, so weit ist der Aufruf finish()
dann startActivity()
im wesentlichen Wiederaufnahme der Tätigkeit mit den neuen Ergebnissen. Ich bin sicher, es muss eine viel einfachere Lösung und ich habe etwas getan, was extrem noobish.
Gibt es einen besseren Weg, dies zu tun?
InformationsquelleAutor der Frage Samah | 2010-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Natürlich es ist. Fügen Sie einfach configChanges-Attribut auf Ihre AndroidManifest.xml wie:
Tätigkeit neu auf rotation Android
Wie deaktiviere ich die Ausrichtung ändern auf Android?
http://developer.android.com/guide/topics/manifest/activity-element.html#config
InformationsquelleAutor der Antwort Fedor
Was Sie beschreiben, ist das Standardverhalten. Sie müssen erkennen und behandeln Sie diese Veranstaltungen selbst durch hinzufügen:
um Ihre manifest-und dann werden die änderungen, die Sie behandeln möchten. So zur Orientierung, die Sie verwenden würden:
und für die Tastatur geöffnet oder geschlossen, die Sie verwenden würden:
Wenn Sie möchten, um zu behandeln, können Sie einfach trennen Sie diese mit dem pipe-Befehl wie:
Diese löst die
onConfigurationChanged
Methode, in welcherActivity
Sie anrufen.Wenn Sie überschreiben die Methode, die Sie übergeben können, werden die neuen Werte.
Hoffe, das hilft.
InformationsquelleAutor der Antwort Pratik Butani