1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

onCreate Methode soll bei Orientation Changed nicht wieder neu augerufen werden

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von orium, 15.05.2012.

  1. orium, 15.05.2012 #1
    orium

    orium Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    11
    Registriert seit:
    02.04.2012
    Phone:
    Nexus 5
    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: 15.05.2012
  2. Tom299, 15.05.2012 #2
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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.
     
    orium bedankt sich.
  3. orium, 15.05.2012 #3
    orium

    orium Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    11
    Registriert seit:
    02.04.2012
    Phone:
    Nexus 5
    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?
     
  4. Tom299, 15.05.2012 #4
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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"
     
    orium bedankt sich.
  5. orium, 15.05.2012 #5
    orium

    orium Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    11
    Registriert seit:
    02.04.2012
    Phone:
    Nexus 5
    Hm okay, und somit wird dann bewirkt, dass eben bei einer Rotation des Bildschirms die onConfigurationChanged() ausgeführt wird und nicht wieder die onCreate() ?
     
  6. Tom299, 15.05.2012 #6
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    genau
     
    orium bedankt sich.
  7. orium, 15.05.2012 #7
    orium

    orium Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    68
    Erhaltene Danke:
    11
    Registriert seit:
    02.04.2012
    Phone:
    Nexus 5
    Okay klasse vielen Dank :) Werde es gleich mal in meiner Application ausprobieren :)
     

Diese Seite empfehlen