What is Linkify Textview in android?


Before getting into the example we should know, what is linkify. Linkify is just like a Hyper link in HTML. Using that we can browse the content. Here is the simple solution to use linkify with textview in android.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">
   <TextView
      android:id="@+id/result"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Result Data"
      android:textSize="20sp"
      android:padding="10dp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintLeft_toLeftOf="parent"
      app:layout_constraintRight_toRightOf="parent"
      app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

In the above XML, we have given a textview, textview contains text and web url link.

Step 3 − Add the following code to src/MainActivity.java

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.util.Linkify;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TextView textView = findViewById(R.id.result);
      textView.setText("TutorialsPoint.com originated from the idea that there exists a class of
         readers who respond better to online content and prefer to learn new skills at their ow...");
      Linkify.addLinks(textView, Linkify.WEB_URLS);
   }
}

In the above code we have given text view and added some text. In that text, we have given a url as tutorialspoint.com. To call linkify in android, we have to call linkify.addLinks(), in that method we have to pass textview and LinkifyMask.

There are different type of LinkifyMask's are available as shown below -

  • Linkify.WEB_URLS: It going make URL as web url, when user click on it, it going to send url to default web browsers.

  • Linkify.EMAIL_ADDRESSES: It going make email id as linkify email id, When user click on it, it going to open default email client from mobile.

  • Linkify.PHONE_NUMBERS: it going to make phone number as linkify phone number and when user click on it, it going to send phone number to default dialor.

  • Linkify.ALL: It going to take care of Linkify.WEB_URLS, Linkify.EMAIL_ADDRESSES and Linkify.PHONE_NUMBERS.

Step 4 − Add the following code to manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.andy.myapplication">
   <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>

Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run  icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −

In the above output, when you click on the linkify text, it going to show website in web browser as shown below -

In the above output, we have clicked on the link. it is opening website in default web browser as shown below -

Click here to download the project code

Updated on: 30-Jul-2019

923 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements