Android WebView Tutorial with Examples
2. Android WebView example
No ADS
    Next, we will practice a simple example. In this example the WebView will display a static content, and a content from a URL.

Create a project named AndroidWebView:
- File > New > New Project > Empty Activity
- Name: AndroidWebView
 - Package name: org.o7planning.androidwebview
 - Language: Java
 
 

Your application will connect to the internet, so you need to configure to allow this in AndroidManifest.xml, add config:
<uses-permission android:name="android.permission.INTERNET" />Full content of AndroidManifest.xml:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.o7planning.androidwebview">
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>The application interface:

If you are interested in the steps to design the interface of this application, please see the appendix at the end of the article.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/editText_addressBar"
        android:layout_width="375dp"
        android:layout_height="48dp"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="25dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText_addressBar">
        <Space
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        <Button
            android:id="@+id/button_static"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="Static Content" />
        <Button
            android:id="@+id/button_go"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="Go" />
    </LinearLayout>
    <WebView
        android:id="@+id/webView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout" />
</androidx.constraintlayout.widget.ConstraintLayout>MyWebViewClient.java
package org.o7planning.androidwebview;
import android.graphics.Bitmap;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
public class MyWebViewClient extends WebViewClient {
    private EditText addressBar;
    public MyWebViewClient(EditText addressBar) {
        this.addressBar= addressBar;
    }
    // When you click on any interlink on webview.
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i("MyLog","Click on any interlink on webview that time you got url :-" + url);
        addressBar.setText(url);
        return super.shouldOverrideUrlLoading(view, url);
    }
    // When page loading
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        Log.i("MyLog", "Your current url when webpage loading.." + url);
    }
    // When page load finish.
    @Override
    public void onPageFinished(WebView view, String url) {
        Log.i("MyLog", "Your current url when webpage loading.. finish" + url);
        super.onPageFinished(view, url);
    }
    @Override
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);
    }
}MainActivity.java
package org.o7planning.androidwebview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity  {
   private  EditText addressBar;
   private WebView webView;
   private Button buttonGo;
   private Button buttonStatic;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       buttonGo =(Button)findViewById(R.id.button_go);
       buttonStatic =(Button)findViewById(R.id.button_static);
       addressBar =(EditText)findViewById(R.id.editText_addressBar);
       webView =(WebView)findViewById(R.id.webView);
 
       // Tùy biến WebViewClient để điều khiển các sự kiện trên WebView
       webView.setWebViewClient(new MyWebViewClient(addressBar));
       buttonGo.setOnClickListener(new Button.OnClickListener() {
           @Override
           public void onClick(View view) {
               goUrl();
           }
       });
       buttonStatic.setOnClickListener(new Button.OnClickListener() {
           @Override
           public void onClick(View view) {
               showStaticContent();
           }
       });
   }
   private void goUrl()  {
       String url = addressBar.getText().toString().trim();
       if(url.isEmpty())  {
           Toast.makeText(this,"Please enter url",Toast.LENGTH_SHORT).show();
           return;
       }
       webView.getSettings().setLoadsImagesAutomatically(true);
       webView.getSettings().setJavaScriptEnabled(true);
       webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
       webView.loadUrl(url);
   }
   private void showStaticContent()  {
       String staticContent="<h2>Select web page</h2>"
               + "<ul><li><a href='http://eclipse.org'>Eclipse</a></li>"
               +"<li><a href='http://google.com'>Google</a></li></ul>";
       webView.loadData(staticContent, "text/html", "UTF-8");
   }
}No ADS
Android Programming Tutorials
- Format Credit Card Number with Android TextWatcher
 - Android Networking Tutorial with Examples
 - Android TextInputLayout Tutorial with Examples
 - Create a simple File Finder Dialog in Android
 - Android AutoCompleteTextView and MultiAutoCompleteTextView Tutorial with Examples
 - Using image assets and icon assets of Android Studio
 - Android AsyncTaskLoader Tutorial with Examples
 - Android ImageSwitcher Tutorial with Examples
 - Android TimePickerDialog Tutorial with Examples
 - Android FrameLayout Tutorial with Examples
 - Android TimePicker Tutorial with Examples
 - How to disable the permissions already granted to the Android application?
 - Android ContextMenu Tutorial with Examples
 - Android Camera Tutorial with Examples
 - Get Phone Number in Android using TelephonyManager
 - Android Clipboard Tutorial with Examples
 - Android DatePickerDialog Tutorial with Examples
 - Android SMS Tutorial with Examples
 - Android Space Tutorial with Examples
 - Android ScrollView and HorizontalScrollView Tutorial with Examples
 - Install Android Studio on Windows
 - Android VideoView Tutorial with Examples
 - Android ProgressBar Tutorial with Examples
 - Android External Storage Tutorial with Examples
 - Android 2D Game Tutorial for Beginners
 - Enable USB Debugging on Android Device
 - Android MediaPlayer Tutorial with Examples
 - Android Phone Call Tutorial with Examples
 - Example of an explicit Android Intent, calling another Intent
 - Android TextWatcher Tutorial with Examples
 - Configure Android Emulator in Android Studio
 - Android PopupMenu Tutorial with Examples
 - Android CharacterPickerDialog Tutorial with Examples
 - Android ListView with Checkbox using ArrayAdapter
 - Android RadioGroup and RadioButton Tutorial with Examples
 - Android AsyncTask Tutorial with Examples
 - Android SnackBar Tutorial with Examples
 - Android Spinner Tutorial with Examples
 - Android ListView Tutorial with Examples
 - Android TextView Tutorial with Examples
 - Android SeekBar Tutorial with Examples
 - Android JSON Parser Tutorial with Examples
 - How to know the phone number of Android Emulator and change it
 - Android LinearLayout Tutorial with Examples
 - Android ViewPager2 Tutorial with Examples
 - Android Text to Speech Tutorial with Examples
 - Android RatingBar Tutorial with Examples
 - Android DialogFragment Tutorial with Examples
 - Android Wifi Scanning Tutorial with Examples
 - Android Fragments Tutorial with Examples
 - Create a simple File Chooser in Android
 - Android DatePicker Tutorial with Examples
 - Example of implicit Android Intent, open a URL, send an email
 - Using Android Device File Explorer
 - Android ToggleButton Tutorial with Examples
 - Google Maps Android API Tutorial with Examples
 - How to add external libraries to Android Project in Android Studio?
 - Android EditText Tutorial with Examples
 - Android ImageButton Tutorial with Examples
 - Android Notifications Tutorial with Examples
 - Android CheckBox Tutorial with Examples
 - Android Services Tutorial with Examples
 - Android Dialog Tutorial with Examples
 - Android Tutorial for Beginners - Basic examples
 - Create a custom Android Toast
 - Android Intents Tutorial with Examples
 - Android WebView Tutorial with Examples
 - Android Chip and ChipGroup Tutorial with Examples
 - Android GridView Tutorial with Examples
 - Android Switch Tutorial with Examples
 - How to remove applications from Android Emulator?
 - Android QuickContactBadge Tutorial with Examples
 - Android Chronometer Tutorial with Examples
 - Android OptionMenu Tutorial with Examples
 - Install Intel® HAXM for Android Studio
 - Playing Sound effects in Android with SoundPool
 - Android Internal Storage Tutorial with Examples
 - Android AlertDialog Tutorial with Examples
 - Android SharedPreferences Tutorial with Examples
 - ChipGroup and Chip Entry Example
 - Android SQLite Database Tutorial with Examples
 - Android Toast Tutorial with Examples
 - Android TableLayout Tutorial with Examples
 - Android Button Tutorial with Examples
 - Android FloatingActionButton Tutorial with Examples
 - What is needed to get started with Android?
 - Android UI Layouts Tutorial with Examples
 - Android CardView Tutorial with Examples
 - Setting SD Card for Android Emulator
 - Android ImageView Tutorial with Examples
 - Android Tutorial for Beginners - Hello Android
 - Android StackView Tutorial with Examples
 - Android TextClock Tutorial with Examples
 
                Show More
            





