Last Updated : 11 Jul, 2025
WebView is a view that displays web pages as a part of the application layout. It is used to embed a complete website into an app.
public class WebView extends AbsoluteLayout implements
ViewTreeObserver.OnGlobalFocusChangeListener,
ViewGroup.OnHierarchyChangeListener
Class Hierarchy:
java.lang.ObjectStep by Step Implementation Step 1: Create a New Project in Android Studio
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AbsoluteLayout
↳ android.webkit.WebView
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio.
Step 2: Adding Permissions to the AndroidManifest.xml FileNote: The code for that has been given in both Java and Kotlin Programming Language for Android.
In AndroidManifest.xml, one needs to include the below permission, in order to access the Internet.
<uses-permission android:name="android.permission.INTERNET"/>Step 3: Working with the MainActivity File
Go to the MainActivity File and refer to the following code. Below is the code for the MainActivity File. Comments are added inside the code to understand the code in more detail.
MainActivity: Java
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the WebView by its unique ID
WebView webView = findViewById(R.id.web);
// loading https://www.geeksforgeeks.org/ url in the WebView.
webView.loadUrl("https://write.geeksforgeeks.org//");
// this will enable the javascript.
webView.getSettings().setJavaScriptEnabled(true);
// WebViewClient allows you to handle
// onPageFinished and override Url loading.
webView.setWebViewClient(new WebViewClient());
}
}
Kotlin
package org.geeksforgeeks.demo
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Find the WebView by its unique ID
val webView = findViewById<WebView>(R.id.web)
// loading http://www.google.com/ url in the WebView.
webView.loadUrl("https://write.geeksforgeeks.org//")
// this will enable the javascript.
webView.settings.javaScriptEnabled = true
// WebViewClient allows you to handle
// onPageFinished and override Url loading.
webView.webViewClient = WebViewClient()
}
}
Step 4: Working with the XML Files
Next, go to the activity_main.xml file, which represents the UI of the project. Below is the code for the activity_main.xml file. Comments are added inside the code to understand the code in more detail.
activity_main.xml: 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">
<WebView
android:id="@+id/web"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Output:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4