19

In my Android app, I have a TextView. The text can contain links. This is an example of a text:

This is just a test. Click the following link http://www.google.com to visit Google.

Note that the text is not in HTML; it will be just a regular text.

I want to do something like textView.parseLinks(), then in the TextView, http://www.google.com will be hyper-linked and clickable to open up the page.

Is this possible?

Thanks

2
  • You say: the text is not HTML it will be just regular text a normal person will put in. If the user will put in text, then is this EditText or TextView ? My question is will the user put the text or it would be pre-defined ? Commented Aug 14, 2013 at 2:58
  • No there will be two activities, one where they have a multi line text edit, which gets saved to a database. The user wont know html, so they will put in text and links without html. Then on the current view, the text they put before gets downloaded and put on a textview. Commented Aug 14, 2013 at 3:02

5 Answers 5

63

Try and include the following in the TextView definition in XML file:

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

The docs of android:autoLink say:

Controls whether links such as urls and email addresses are automatically found and converted to clickable links

So for automatically finding links, the above may help. Try and see.

Sign up to request clarification or add additional context in comments.

2 Comments

superb inbuilt solution ever.. thanxx man for such a important info.
( superb.inbuilt ) if we enter words as in bracket, it also show link for those.. how can i prevent that
6

Something like this should work.

    TextView tv = (TextView) findViewById(R.id.textView1);
    String text = "This is just a test. Click this link here <a href=\"http://www.google.com\">Google</a> to visit google.";
    tv.setMovementMethod(LinkMovementMethod.getInstance());
    tv.setText(Html.fromHtml(text));

Comments

5
    <TextView
        ...
        android:autoLink="..."/>
//set  ... by web|email|none|phone|map|all according to your need

// to change link color add below line android:textColorLink="@color/yourcolor"

Comments

2

try this..it is working for me

  <TextView
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:autoLink="web"
    android:text="click here http://www.google.com/"/>

Comments

1

Simple way to make selecting URL and Phone numbers in TextView:

TextView textView = (TextView)findViewById(R.id.textView1);
textView.setText("some url is www.google.com phone 7504567890 another url lkgndflg.com ");
Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.