2016-09-21 2 views
1

In graph i plot value from calling api. Ich habe diese in Fragment-Klasse anzeigen, und wenn ich die Ausrichtung ändern App wird abstürzen. Wie kann ich die Ausrichtung ändern und das Bild im Modus landscape anzeigen, ohne eine App zu stürzen?App stürzt ab, wenn ich die Geräteausrichtung ändere

+0

Können Sie die Fehlermeldung teilen, die Sie erhalten, wenn die App abstürzt? – Rachit

+0

@Rachit das Terminal bieten diesen Fehler verursacht von: java.lang.NullPointerException: Versuch, virtuelle Methode 'int java.lang.Integer.intValue()' auf eine Null-Objektverweis aufzurufen. – user2273146

Antwort

11

Wenn sich die Ausrichtung ändert, wird der Zustand des Fragments geändert. Sie müssen den Zustand Ihrer Fragment sparen, indem

setRetainInstance(true); 

in onCreate() Methode aufrufen.

Sie können auch onRestoreInstanceState() Methode verwenden, die Ihre savedInstanceState

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    onCreate(savedInstanceState); 
} 

Die beste Lösung speichert wird nur

android:configChanges="orientation|screenSize|keyboardHideen" 

für Ihre Aktivität hinzufügen, die das Fragment in der Manifest-Datei enthält.

+0

@ user2273146 folgen Sie diesem ... auch eine weitere Lösung machen ein XML in Landschaft und Layout-Land stellen Sie sicher, IDs sind gleich zu diesem Layout ..... –

1

Während Orientierungsänderungen zerstört Android Ihre Aktivität. Vielleicht hast du etwas festgelegt und es wurde während dieser Änderung ungültig. Sie können mehr darüber hier lesen: https://developer.android.com/guide/topics/resources/runtime-changes.html

Sie sagten, Sie möchten in der Lage sein, die Ausrichtung zu ändern. Nur zur Vollständigkeit können Sie die Ausrichtung auf Querformat oder Hochformat korrigieren, siehe: Android - disable landscape mode?

Verwandte Themen