Use TextView autoLink

Description

If you know that the content of the TextView is going to contain a URL or an e-mail address, you can set the autoLink property to email|web, and the TextView will highlight any e-mail addresses and URLs.

When the user clicks on one of these highlighted items, the system will take care of launching the e-mail application with the e-mail address, or a browser with the URL.

In XML, this attribute would be inside the TextView tag and would look something like this:


<TextView ...     
          android:autoLink="email|web"
          ...
/>

You specify a pipe-delimited set of values including web, email, phone, or map, or use none (the default) or all.

To set autoLink behavior in code instead of using XML, the corresponding method call is setAutoLinkMask().

You would pass it an int representing the combination of values sort of like before, such as android.text.util.Linkify.EMAIL_ADDRESSES|Linkify.WEB_ADDRESSES.


TextView tv =(TextView)this.findViewById(R.id.tv);
tv.setAutoLinkMask(Linkify.ALL);
tv.setText("Please visit my website, http://www.java2s.com or email me at info@java2s.com.");

You have to set the auto-link options on TextView before setting the text. Setting the auto-link options after setting the text won't affect the existing text.

Example

The following is the xml layout file.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
//  w w w  .ja  v a  2s  . co  m
    <TextView
        android:id="@+id/myEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="abc@yourserver.com"
        android:autoLink="email" />

</LinearLayout>

Java code


package com.java2s.app;
/* w w w  .jav  a 2s. c o m*/
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

}
Use TextView autoLink




















Home »
  Android »
    Android UI »




UI Basics
Action Bar
Animation
Button
Canvas
CheckBox
Clock Date Picker
Dialog
EditText
Event
Fragment
Gesture
GridView
ImageView
Layout
ListView
Map
Menu
Model
OpenGL
ProgressBar
RadioButton
Spinner
Tab
TextView
Thread
Toast
Video
View
WebView