Android – Creating links using linkify

android   Linkify is a class that lets you create links from a TextView or a Spannable.
You can create links not just to web pages, but also to locations on the map, emails and even phone numbers.

*Note: the examples bellow may not always work in the emulator.

Web address:

TextView myWebSite = new TextView(this);
myWebSite .setText("http://");
Linkify.addLinks(myWebSite , Linkify.WEB_URLS);

Phone number:

TextView myPhone = (TextView) findViewById(;
myPhone .setText(“5552323233”);
Linkify.addLinks(myPhone  , Linkify.PHONE_NUMBERS);

Map address:

TextView myLocation = new TextView(this);
myLocation.setText("436 Mayfield Ave, Stanford, CA");
Linkify.addLinks(myLocation , Linkify.MAP_ADDRESSES); 

Email address:

TextView myEmail= (TextView) findViewById(;
Linkify.addLinks(myEmail  , Linkify.EMAIL_ADDRESSES);

Auto detect:
Use Linkify.ALL to automatically detect the link type.

Linkify.addLinks(myTextView , Linkify.ALL);

More than one option:
You can choose more than a single option for the link type.

Linkify.addLinks(myTextView, Linkify.PHONE_NUMBERS | Linkify.WEB_URLS);

Using pattern:
You can use a regular expression for detecting text parts and transform only them to links instead of the whole text.

 TextView myCustomLink = new TextView(this);
Pattern pattern = Pattern.compile("[a-zA-Z]+&");
myCustomLink.setText("press Linkify& or on Android& to search it on google");
Linkify.addLinks(myCustomLink,pattern, "");

MatchFilter is used for more complicated filters.

MatchFilter myMatchFilter = new MatchFilter() {
	public boolean acceptMatch(CharSequence cs, int start, int end) {
		return start > 48; 

TextView myCustomLink2 = new TextView(this);
Pattern pattern2 = Pattern.compile("[a-zA-Z]+"); 
myCustomLink2.setText("press one of these words to search it on google: Android Linkify dzone");
Linkify.addLinks(myCustomLink2,pattern2, "", myMatchFilter, null);

So fat the text we have filtered stayed the same. But sometimes you need the text to be different than the text which is appended to the link.

  TransformFilter myTransformFilter = new TransformFilter() {
	public String transformUrl(Matcher match, String url) {
		return url.substring(1); //remove the $ sign
TextView myCustomLink3 = new TextView(this);
Pattern pattern3 = Pattern.compile("\\$[a-zA-Z]+"); 
myCustomLink3.setText("press $Linkify or on $Android to search it on google");
Linkify.addLinks(myCustomLink3,pattern3, "", null, myTransformFilter);

Download code example

10 Replies to “Android – Creating links using linkify”

  1. I use

    TextView myWebSite = (TextView) findViewById(;
    Linkify.addLinks(myWebSite , Linkify.WEB_URLS);

    and in .xml

    but don´t work in my aplication
    the emulator said:

    The application has stopped unexpectedly. please try again

    What I am doing wrong?

  2. Pingback: Click-able address android - Android Forums

  3. Pingback: Call Phone Number from App - Android Forums

  4. TextView myLocation = new TextView(this);
    myLocation.setText(“436 Mayfield Ave, Stanford, CA”);
    Linkify.addLinks(myLocation , Linkify.MAP_ADDRESSES);

    Tried the code. All options work except for MAP_Addresses. It doesnot show with a clickable text. Is any googlemap api key activation is required?

Leave a Reply

Your email address will not be published.