The following example shows that use of android webview with progress bar.
1. copy the following code and paste into “AndroidManifest.xml”
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.mitindia.com.mywebappprogressbar" > <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" 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>
2. Copy the following code and paste into “activity_main.xml”
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".WebViewActivity" > <LinearLayout android:id="@+id/urlContainer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/urlField" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="3" android:hint="Enter URL to open" /> <Button android:id="@+id/goButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Open" /> </LinearLayout> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_centerHorizontal="true" android:layout_height="wrap_content" android:layout_below="@id/urlContainer" /> <WebView android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/progressBar" /> </RelativeLayout>
3. Copy the following and paste into “MainActivity.java”
package app.mitindia.com.mywebappprogressbar; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; public class MainActivity extends Activity { private WebView webView; private EditText urlEditText; private ProgressBar progress; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); urlEditText = (EditText) findViewById(R.id.urlField); webView = (WebView) findViewById(R.id.webView); webView.setWebViewClient(new MyWebViewClient()); progress = (ProgressBar) findViewById(R.id.progressBar); progress.setVisibility(View.GONE); Button openUrl = (Button) findViewById(R.id.goButton); openUrl.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { String url = urlEditText.getText().toString(); if (validateUrl(url)) { webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl(url); } } private boolean validateUrl(String url) { return true; } }); } private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { progress.setVisibility(View.GONE); MainActivity.this.progress.setProgress(100); super.onPageFinished(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { progress.setVisibility(View.VISIBLE); MainActivity.this.progress.setProgress(0); super.onPageStarted(view, url, favicon); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } public void setValue(int progress) { this.progress.setProgress(progress); } }
4. Run the project and see the following output.
I constantly spent my half an hour to read this web site’s articles daily along with a mug of coffee.
Tremendous things here. I’m very happy to see your article.
Thank you so much and I am having a look ahead to contact you.