1. Gastonet, 09.11.2011 #1
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Hab in einer Layoutdatei eine WebView, welche auch problemos die erwünschte Seite lädt. Wenn ich mein Smartphone allerdings neige und sich der Bildschirminhalt dreht, dann lädt er komischerweise die Seite neu (und zwar die ursprüngliche URL) :/

    Die URL ist statisch im Code festgelegt und wird mit der onCreate-Anweisung geladen

    Code:
    @Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.nachrichten);
    		String neueadresse = "http://www.google.de";
    		mWebView = 
    				(WebView) findViewById(R.id.wv_startseite);
    		mWebView.setWebViewClient(mViewClient);
    		mWebView.getSettings().setJavaScriptEnabled(true);
    		mWebView.loadUrl(neueadresse);
    	}
    Wie verhindere ich, dass er die Seite neu aufbaut?

    Beste Grüße
     
    Zuletzt bearbeitet: 10.11.2011
  2. nijoX, 10.11.2011 #2
    nijoX

    nijoX Junior Mitglied

    Hallo sel3,
    Um das Neuladen zu verhindern, musst du dir die aktuelle URL immer speichern und dann in der onCreate methode nach dem 1. Aufruf ein flag setzen anhand dessen du dann schauen kannst ... 1. mal aufrufen ? google.de : savedInstanceState. so in der Art. Sollte als denkanstoß reichen :)

    MfG nijoX
     
    Gastonet bedankt sich.
  3. Gastonet, 10.11.2011 #3
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Besten Dank, nijoX!! Hat gut funktioniert :)
     
  4. Gastonet, 10.11.2011 #4
    Gastonet

    Gastonet Threadstarter Erfahrener Benutzer

    Aktuell habe ich es so umgesetzt:

    Code:
    protected void onSaveInstanceState(Bundle outState) {
    		String link = mWebView.getUrl();
    		outState.putString("link", link);
    		super.onSaveInstanceState(outState);
    		Log.d(TAG, "onSaveInstanceState() aufgerufen");
    	}
    	
    	protected void onRestoreInstanceState(Bundle savedInstanceState) {
    		super.onRestoreInstanceState(savedInstanceState);
    		String link = savedInstanceState.getString("link");
    		mWebView.loadUrl(link);
    		Log.d(TAG, "onRestoreInstanceState() aufgerufen");	
    	}
    Das funktioniert wie bereits gesagt. Allerdings ist der Übergang vom Landscape- in den Portraitmodus (und umgekehrt) alles andere als flüssig S:
    Da erscheint für eine Sekunde eine weiße Seite. Gibt es da bestimmte Tricks, wie man das optimieren kann?
     
  5. swordi, 10.11.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    je nachdem was du alles in einer oncreate methode machst.

    das wird ja alles durchlaufen, bevor die activity neu angezeigt wird.
     
    Gastonet bedankt sich.