java - Android WebView app resetting on rotation -


i having issues webview on rotation app resets default url. have hunted round solution , tried number on here , run different issues each.

this in .java code

package uk.co.grcade.grcade;  import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.app.activity; import android.util.log; import android.view.keyevent; import android.webkit.webview; import android.view.view; import android.webkit.downloadlistener; import android.webkit.webviewclient;  public class grcade extends activity {      webview web;     string weburl = "http://grcade.co.uk";      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_grcade);          if (savedinstancestate != null)         {             web.loadurl(weburl);         }          web = (webview) findviewbyid(r.id.web);         web.getsettings().setjavascriptenabled(true);         web.loadurl(weburl);         web.setpadding(0, 0, 0, 0);         web.getsettings().setloadwithoverviewmode(true);         web.getsettings().setusewideviewport(true);         web.getsettings().setsupportzoom(true);         web.getsettings().setbuiltinzoomcontrols(true);         web.getsettings().setdisplayzoomcontrols(false);     }      @override     protected void onsaveinstancestate (bundle outstate )     {         super.onsaveinstancestate(outstate);         web.savestate(outstate);     }      @override     protected void onrestoreinstancestate(bundle savedinstancestate)     {         super.onrestoreinstancestate(savedinstancestate);         web.restorestate(savedinstancestate);     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_grcade, menu);         return true;     }      private class hellowebviewclient extends webviewclient {         public boolean shouldoverrideurlloading(webview web, string url) {             web.loadurl(url);             return true;         }     }      public boolean onkeydown(int ketcode, keyevent event) {         if ((ketcode == keyevent.keycode_back) && web.cangoback()) {             web.goback();             return true;         }         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          return super.onoptionsitemselected(item);     } } 

i got code post on here can't comment ask why line:

web = (webview) findviewbyid(r.id.web); 

is showing unable resolve symbol error, new whole thing appreciate on how can error go away , allow me have webview app can rotated without resetting default page.

thanks.

your problem in oncreate method. code

  public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_grcade);          if (savedinstancestate != null)         {             web.loadurl(weburl);         } ......... ......... 

you check if bundle object not null , load url. instead, should restoring state when bundle object not null. this

if (savedinstancestate != null) {                 webview.restorestate(savedinstancestate);             } else {                 webview.loadurl("http://grcade.co.uk");             } 

Comments