html and activity links in TextView

So we need to linkify a TextView.


By linkify, I mean adding links to a TextView. These links could either be html links that link to a webpage, or some url that links to an Activity (launches an activity).




TextView mTextSample = (TextView) findViewById(R.id.yourTextView);
String text = "Visit my blog sherifandroid.blogspot.com or run the myactivity callback";
mTextSample.setText(text);

Pattern pattern = Pattern.compile("sherifandroid.blogspot.com");
Linkify.addLinks(mTextSample, pattern, "http://");
Pattern pattern2 = Pattern.compile("myactivity");
Linkify.addLinks(mTextSample, pattern2, "sherif-activity://");

Now, the first pattern with the html link to my blogger page will work correctly.

However the second part should startActivity myactivity.
It will not work unless we specify that sherif-activity://myactivity is a callback url for an activity of our package.

So, for this to work and call say TestActivity!
Your TestActivity in AndroidManifest.xml should look like this:

<activity
	android:label="@string/app_name"
	android:name=".TestActivity">
	<intent-filter>
		<data android:host="myactivity" android:scheme="sherif-activity" />
		<action android:name="android.intent.action.VIEW" />
		<category android:name="android.intent.category.DEFAULT" />
		<category android:name="android.intent.category.BROWSABLE" />
	</intent-filter>
 </activity>

Congradulations, you just created a link to your website and to your activity in the same TextView.

How about sending some data to the new activity using the link!?

Lets first investigate the other way of linkifying a TextView. This would be using normal html tags, namely the <a> tag.


TextView mTextSample = (TextView) findViewById(R.id.yourTextView);
String text = "Visit my blog <a href=\"http://sherifandroid.blogspot.com/\">mysite</a> or run the <a href=\"sherif-activity://myactivity\">myactivity</a> callback";
mTextSample.setText(Html.fromHtml(text));
mTextSample.setMovementMethod(LinkMovementMethod.getInstance());

This will work perfectly like the previous approach.

Now, let us add some data to the link and ultimately the intent that will open the new activity.
We will use the normal GET parameters to add data.

so will will comment out one line of code which initializes text and change it so some data is added to linked activity.


String text = "Visit my blog <a href=\"http://sherifandroid.blogspot.com/\">mysite</a> or run the <a href=\"sherif-activity://myactivity?author=sherif&nick=king\">myactivity</a> callback";
//String text = "Visit my blog <a href=\"http://sherifandroid.blogspot.com/\">mysite</a> or run the <a href=\"sherif-activity://myactivity\">myactivity</a> callback";

So How can we retrieve these extra parameters in the TestActivity!? In this case, the parameter author and nick
It is rather simple:


String author = getIntent().getData().getQueryParameter("author");
String nick = getIntent().getData().getQueryParameter("nick");


Click here for Sample Project + Source Code (download) 

83 comments:

  1. Thank You So Much..and the update to call activity with parameters made my day..!!

    ReplyDelete
    Replies
    1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Front end developer learn from HTML5 CSS3 Javascript Online Training from India . or learn thru HTML5 CSS3 Javascript Online Training from India. Nowadays JavaScript has tons of job opportunities on various vertical industry. HTML5 CSS3 Javascript Online Training from India

      Delete
  2. thank Sherif elKhatib! It work perfectly! :)

    ReplyDelete
  3. This is works great.. thank you

    ReplyDelete
  4. Check out for working example using tag

    http://javatechig.com/2013/04/07/how-to-display-html-in-android-view/

    ReplyDelete
  5. Thanks! This is help for me

    ReplyDelete
  6. I found this as an informative and interesting post,

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. However nothing of it will be possible if there were not PSD to HTML slicing possibilities. The construction of great buildings, begin with laying down the very basic singular brick in the foundation.
    StartPoint Hastings

    ReplyDelete
  10. It is extremely affordable to invest in an Android based system. Besides, you can get an experienced Android application developer at cost effective rates. Download game killer

    ReplyDelete
  11. Nice information Regarding htmls and links in text view My sincere thanks for sharing this post and please continue to share this kind of post
    Android Training in Chennai

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete
  13. That is very interesting; you are a very skilled blogger. I have shared your website in my social networks! A very nice guide. I will definitely follow these tips. Thank you for sharing such detailed article.
    Android Online Training

    ReplyDelete
  14. really nice blog has been shared by you.. before i read this blog i didn't have any knowledge about this but now i got some knowledge. so keep on sharing such kind of an interesting blogs.
    android training in chennai

    ReplyDelete
  15. Thank you so much for your blog. I have been using it as reference for my students during Android Course in Chennai. It has been so much useful, keep writing more


    Android Training in Chennai

    ReplyDelete
  16. really nice blog has been shared by you. before i read this blog i didn't have any knowledge about this. but now i got some knowledge about this. so keep on sharing such kind of an interesting blogs.
    android training in chennai

    ReplyDelete
  17. Its an amazing article that you share about PSD To HTML conversion. Thank you so much.

    ReplyDelete
  18. Android 3 Apps is other free utility to create an android application for your Android gadgets of your choice.
    Freedom Apk

    ReplyDelete
  19. Based on your requirement, you should hire an experienced Android app developer to create innovative applications for your company.
    Download Game Killer Apk

    ReplyDelete
  20. as it needs to mull over a much lower assortment of gadgets when contrasted with Android. read this

    ReplyDelete
  21. You have provided an nice article, Thank you very much for this one. And i hope this will be useful for many people.. and i am waiting for your next post keep on updating these kinds of knowledgeable things...
    Android Training In Gurgaon

    ReplyDelete
  22. Thank you a lot for providing individuals with a very spectacular possibility to read critical reviews from this site.
    data-science-training-in-bangalore

    ReplyDelete
  23. In 1876 Thomas Edison invented a machine that ultimately became the tattoo machine, but it took modifications by Samuel O'Reilly in 1891 to adapt the device for tattooing.

    kit tattoo

    ReplyDelete
  24. Keeping in mind, the importance of mobile application and its usability, you can either choose Android or iOS. ShowBox APK

    ReplyDelete
  25. Thank you so much for sharing this amazing article with us.Will stay connected with your blogs for the future posts.
    Summer Courses for Business Administration in Chennai | Best Summer Courses in Porur

    ReplyDelete
  26. I hope these stuffs on Sites To Create Your Own Android Application for Free will help you making your own Android apps and share to your friend and entire world & most important making money through Android Apps.
    Custom Software Development Company

    ReplyDelete
  27. I talked about link value last year but I thought I'd go a few steps further and add to that, covering how Google values links nowadays when link building isn't the center of attention or the entire game that it once was.
    free custom url shortener

    ReplyDelete
  28. The information you have here is really useful to make my knowledge good. It is truly supportive for us and I have accumulated some essential data from this blog.
    Best cloud Computing Training Institute in Chennai | Best cloud Computing Training Institute in Velachery

    ReplyDelete
  29. Nice blog. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
    Best Microsoft Azure Training Institute in Chennai | Best Microsoft Azure Training Institute in Velachery

    ReplyDelete
  30. I am really enjoying reading your well-written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.
    Hadoop course in Marathahalli Bangalore
    DevOps course in Marathahalli Bangalore
    Blockchain course in Marathahalli Bangalore
    Python course in Marathahalli Bangalore
    Power Bi course in Marathahalli Bangalore

    ReplyDelete
  31. I was surfing net and fortunately came across this site and found very interesting stuff here. Its really fun to read. I enjoyed a lot. Thanks for sharing this wonderful information. vpn

    ReplyDelete
  32. Just pure brilliance from you here. I have never expected something less than this from you and you have not disappointed me at all. I suppose you will keep the quality work going on. https://internetprivatsphare.de/dazn/

    ReplyDelete
  33. This book gives you step wise extensive guide along with three golden lessons that helps your kids learn all the right things about survival die besten vpn

    ReplyDelete
  34. Really it was an awesome article… very interesting to read…Thanks for sharing.........

    pacetechnosoft
    Technology

    ReplyDelete
  35. definately enjoy every little bit of it and I have you bookmarked to check out new stuff of your blog a must read blog! vpnveteran

    ReplyDelete
  36. Bored of sitting at home? Play casino and get paid for it perfect popular online casinos Play and win.

    ReplyDelete
  37. Make a lot of money with online casino BGAOC we have top rated online casinos If you want to always be in the money, then try to play online casino with us.

    ReplyDelete
  38. Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.
    Java Training in Chennai
    Java course in Chennai
    Hadoop Training in Chennai
    Python Training in Chennai
    Java Training in Porur
    Java Training in Adyar
    Java Training in Tnagar

    ReplyDelete
  39. In the beginning, I would like to thank you much about this great post. Its very useful and helpful for anyone looking for tips. I like your writing style and I hope you will keep doing this good working.
    Hacking Course in Chennai
    Hacking Classes in Chennai
    AWS Training in Chennai
    Data Science Course in Chennai
    Digital Marketing Course in Chennai
    Hacking Training in Tambaram
    Hacking Training in Velachery
    Hacking Training in OMR

    ReplyDelete
  40. Знаю где продается отличная rgb лента, покупал у них недавно, нареканий нет, компания называется Ekodio

    ReplyDelete
  41. Imagine yesterday went to some online casino copacetic best online gambling real money and decided to ponastalgirovat. so many pleasant memories when you again see this slot machine mmm cool

    ReplyDelete
  42. so many pleasant memories when you again see this slot machine mmm cool taxiwala movie review

    ReplyDelete
  43. Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
    mobile service centre chennai
    best mobile service center in chennai
    best mobile service center in chennai
    mobile service center in velacherry

    ReplyDelete
  44. Our services are available in all cities of Minneapolis and its surroundings. We are having years of experience which enabled our customers and clients to trust our services. internetprivatsphare.at

    ReplyDelete
  45. Thanks for sharing this valuable information and we collected some information from this blog.
    Android Training in Noida

    ReplyDelete
  46. Great post full of useful tips! My site is fairly new and I am also having a hard time getting my readers to leave comments. Analytics shows they are coming to the site but I have a feeling “nobody wants to be first”. lemigliorivpn.com

    ReplyDelete
  47. Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
    Thanks & Regards,
    VRIT Professionals,
    No.1 Leading Web Designing Training Institute In Chennai.

    And also those who are looking for
    Web Designing Training Institute in Chennai
    SEO Training Institute in Chennai
    Photoshop Training Institute in Chennai
    PHP & Mysql Training Institute in Chennai
    Android Training Institute in Chennai

    ReplyDelete
  48. Apex Packs as you can likewise get zenith packs just by playing the amusement all things considered with the expectation of complimentary you can get this for genuine cash as well so this can be utilized to get skins like amazing skins, Epic Skins, Rare Skins and Common Skins, these skins cost 1,200,400,60 and 30 individually.

    https://community.act.com/t5/user/viewprofilepage/user-id/64039

    ReplyDelete
  49. Happy fathers day wishes is here. Just copy and send it to your father...

    ReplyDelete
  50. Really very happy to say that your post is very interesting. I never stop myself to say something about it. You did a great job. Keep it up.
    We have an excellent IT courses training institute in Hyderabad. We are offering a number of courses that are very trendy in the IT industry. For further information, please once go through our site.
    AWS Training In Hyderabad

    ReplyDelete