Tuesday 4 December 2012

android: Preventing WebView reload on Rotation


HelloWebView.java

public class HelloWebView extends Activity {
WebView webview;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
if (savedInstanceState == null)
{
webview.loadUrl(" http://www.google.com");
}
webview.setWebViewClient(new HelloWebViewClient());

}

@Override
protected void onSaveInstanceState(Bundle outState )
{
super.onSaveInstanceState(outState);
webview.saveState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
webview.restoreState(savedInstanceState);
}

public class HelloWebViewClient extends WebViewClient {
ProgressDialog progressBar = ProgressDialog.show(HelloWebView.this, "Loading", "Please wait...");

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

@Override
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
                 progressBar.dismiss();
             }
}
}

webview.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />

</LinearLayout>


No comments:

Post a Comment