onCreate Methode soll bei Orientation Changed nicht wieder neu augerufen werden

O

orium

Ambitioniertes Mitglied
11
Servus Leute,

wie mein Titel schon sagt habe ich das Problem, dass meine "onCreate" Methode bei der orientation changed funktion neu aufgerufen wird..

Beispielsweise rufe ich innerhalb meiner App ein Bild aus dem Web auf (in der onCreate Methode) und lasse dies eben in einem ImageView anzeigen.
Wenn ich nun das Gerät drehe zieht er sich das Bild erneut...ist es denn irgendwie möglich, dass meine UI Elemente bestehen bleiben, bzw. die onCreate Methode, wie ich jetzt eben vermute, nicht erneut aufgerufen wird?

Grüße
Orium
 
Zuletzt bearbeitet:
Wenn du das drehen komplett verhindern willst, kannst du in der Manifest "portrait" einstellen, dann bleibt die Activity immer im Hochformat.

Ansonsten kannst du die Methode onConfigurationChanged überschreiben.
 
  • Danke
Reaktionen: orium
Servus,

ja den work around habe ich auch schon in anderen Apps realisiert, einfach das drehen zu verhindern, würde jedoch gerne eine Ändern des Formats zulassen.

Hm okay, und wenn ich diese überschreibe führt er dann kein erneutes Starten der Activity aus?
 
Code:
public class ChangeOrientationActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        System.out.println("onCreate ...");
        
        final Button btnTest = new Button(this);
        btnTest.setText("Test 1234");
        btnTest.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				btnTest.setText("Clicked");
			}
		});
        
        setContentView(btnTest);
    }
    
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
    	super.onConfigurationChanged(newConfig);
    	
    	System.out.println("onConfigurationChanged ...");
    }
    
}

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".ChangeOrientationActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Wichtig hier: android:configChanges="orientation|keyboardHidden"
 
  • Danke
Reaktionen: orium
Hm okay, und somit wird dann bewirkt, dass eben bei einer Rotation des Bildschirms die onConfigurationChanged() ausgeführt wird und nicht wieder die onCreate() ?
 
genau
 
  • Danke
Reaktionen: orium
Okay klasse vielen Dank :) Werde es gleich mal in meiner Application ausprobieren :)
 

Ähnliche Themen

H
Antworten
2
Aufrufe
1.310
Hcman
H
D
Antworten
17
Aufrufe
407
datNeMo
D
D
  • Data2006
Antworten
14
Aufrufe
486
jogimuc
J
Zurück
Oben Unten