Spannable brings lots of possibility to TextView, includes displaying various appearance of a Text and onClick callbak.
The normal way to make a TextView clickable is to use View.setOnClickListener. It sets a callback listener to the whole view. What if we just want to add callback to a substring of a text?
This pictures demonstrate
- One TextView
- The sub-string has variant color
- The sub-string is clickable
Of course we could use ViewGroup + many TextView to accomplish that, spannable make things eaiser.(maybe....)
We can understand Span in this way: Put extra function to a CharSequence. For example, If I have string 'TheFinalAnswerIs42', I can set Red color to "Final" and make 42 clickable. But the TextView does not know so much things, it only focus on showing the whole string.
We know that TextView only needs CharSequence as its content, and both of Spannable and Spanned are sub-interface of CharSequence. The question becomes 'How to build desired CharSequence'
Android API Documentations tells us that we can use SpannableStringBuilder to generate SpannableString.
Spannable span = (new SpannableStringBuilder()).newSpannable("TheFinalAnswerIs42"); span.setSpan(new ForegroundColorSpan(0xFFFF0000), 3, 5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
So the string "Final" becomes red.And we are going to make '42' clickable.
span.setSpan(new MyClickableSpan(), 16, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mTextView.setText(span); mTextView.setMovementMethod(LinkMovementMethod.getInstance());
MyClickableSpan is to be a implementation of ClickableSpan. All we have to do is override method onClick.
Further question: why setSpan is using primitive class Object but not some interface such as Spanned?
API documentation also tells you that you can bind any your own object as Span to TextView. But how to use my customized span object? To solve this, we should understand how the TextView use ClickableSpan.
The source code of TextView tells us that it handle ClickableSpan in onTouchEvent.
In other words, to handle our customzied span object, we should extends TextView to use CustomizedTextView to accomplish it.
the thing i want to ask is that,my app has a list view and i want to linkify some texts along with weblink too.For this particular purpose this idea is not working,since the holder does not recognizing the click able text. So please tell me another way out
ReplyDeleteI don't understand your question exactly. 'Click a text and open a web link' is feasible. If you put the TextView into a ListView, you should consider that is the event pass to TextView correctly.
Deletespan click event,see below
ReplyDeletehttp://stackoverflow.com/a/16182500/596555
Thanks a lot! You made a new blog entry to answer my question; I really appreciate your time and effort.
ReplyDeleteAndroid Training institute in chennai with placement | Android Training in chennai |Android Training in Velachery | android development course fees in chennai
This is in fact a very nice sketch and even from the look at it, one is able to learn a lot concerning the details of the blog. I believe that the people who have read this content have been sufficiently enlightened. Through learning such hacking techniques we are to develop more secure applications. Statistics Homework Help
ReplyDeleteInteresting article to read.. I learnt something new information from this article.. thank you for sharing
ReplyDeletehadoop training | big data training
Can you recommend any other blogs/websites/forums that deal with the same subjects? Thanks.
ReplyDeletenebosh igc courses in chennai
This comment has been removed by the author.
ReplyDeleteThanks for Information
ReplyDeleteRPA Training in Bangalore | Devops Training in Bangalore
Wonderful content!!1 pls notify me if you have any recommendations for new blog writers.
ReplyDeleteweb designing course in chennai
SEO Training in Chennai
Big Data Training in Chennai
Hadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Course in Chennai
JAVA Training in Chennai
big data certification in chennai
Thanks for sharing this very informative blog for us. Who are interested to learn Digital marketing can join Litementors. Which is the No.1 Digital Marketing Training in Chennai.
ReplyDeleteWow it is really wonderful and awesome thus it is veWow it is really wonderful and awesome thus it is very much useful for me to understand many concepts and helped me a lot. it is really explainable very well and i got more information from your site.ry much useful for me to understand many concepts and helped me a lot. it is really explainable very well and i got more information from your site.
ReplyDeleteHadoop Training in Bangalore
Thanks For sharing a nice post about Informatica Training Course.It is very helpful and Informatica useful for us.Informatica Training in Bangalore
ReplyDeleteExcellent information with unique content and it is very useful to know about the Oracle Apps HRMS.oracle apps hrms training in bangalore
ReplyDeleteThank you for sharing such a nice post!
ReplyDeleteGet Business Objects Training in Bangalore from Real Time Industry Experts with 100% Placement Assistance in MNC Companies. Book your Free Demo with Softgen Infotech.
Thanks for the information...
ReplyDeleteBest SAP HANA Training in Bangalore - BTM Layout | SAP HANA Training Institutes | SAP HANA Course Content - Tecmax
- Tecmax offers the Best SAP HANA Training in Bangalore - BTM Layout, We offer Real-Time Training with Live Projects, Our SAP HANA Trainers are Working Professionals with 8+ years of Expertise in SAP HANA, we also provide placement assistance.
This comment has been removed by the author.
ReplyDeleteNice idea,keep sharing your ideas with us.i hope this information's will be helpful for the new learners.
ReplyDeleteAndroid Training Institute in Chennai | Android Training Institute in anna nagar | Android Training Institute in omr | Android Training Institute in porur | Android Training Institute in tambaram | Android Training Institute in velachery
Nice article I was really impressed by seeing this blog, it was very interesting and it is very useful for me.
ReplyDeleteWeb Designing Training Course in Chennai | Certification | Online Training Course | Web Designing Training Course in Bangalore | Certification | Online Training Course | Web Designing Training Course in Hyderabad | Certification | Online Training Course | Web Designing Training Course in Coimbatore | Certification | Online Training Course | Web Designing Training Course in Online | Certification | Online Training Course
One of the best blogs that i have read still now. Thanks for your contribution in sharing such a useful information. Waiting for your further updates.
ReplyDeletesap training in chennai
sap training in tambaram
azure training in chennai
azure training in tambaram
cyber security course in chennai
cyber security course in tambaram
ethical hacking course in chennai
ethical hacking course in tambaram
Thanks a lot! You made a new blog entry to answer my question; I really appreciate your time and effort.
ReplyDeletedata science training in chennai
data science training in omr
android training in chennai
android training in omr
devops training in chennai
devops training in omr
artificial intelligence training in chennai
artificial intelligence training in omr
Software IT Coaching Center in ChennaiOrganic Chemistry tutor
ReplyDeleteJust found your post by searching on the Google, I am Impressed and Learned Lot of new thing from your post.
ReplyDeleteBusiness Objects training in bangalore
Business Objects institutes in bangalore
Amazing post thanks for sharing.
ReplyDeleteSpark Training institute in Bangalore
scatola protezione stagna
ReplyDeletenike metcon 5 rojas
zapatillas de agua niña
veste velour carhartt
damen lack schnürer
cappotto rosso scarpe nike
fiore garofano amazon
nike presto extreme pas cher
nike pegasus 94
shorts fitness feminino
nike t shirt tumblr
quadri da disegnare amazon
chinelo slide da melissa
tenis all star feminino branco couro
calzoncillos puma hombre
veste per battesimo amazon
nike air force modelo agotado
cartera levis hombre
filtre pour aspirateur samsung sc4780
autoradio gps vdo
nike tribute veste
soldes chaussures homme caterpillar hiver cafétéria
amazon sandalias reef
chanclas new balance niña
kit de creation de bracelets utilisation
wc suspendu mural amazon
foulard en soie homme
all star converse star player
paragliding přilby
nike anzug nba rot
camisa da ferroviária
tapie adidas credit lyonnais
gucci handbags uk
air force 1 nike outfit men basket
This site was... how would I say it? Applicable!! At long last I have discovered something that encouraged me. Good wishes! news updates
ReplyDeletebinance güvenilir mi
ReplyDeleteinstagram takipçi satın al
takipçi satın al
instagram takipçi satın al
shiba coin hangi borsada
shiba coin hangi borsada
tiktok jeton hilesi
is binance safe
is binance safe
that's so wonderful bro very good job!
ReplyDeleteinstagram garantili takipçi satın al
It s a very useful page. Thank you. 17f1b51b1b03d68b05efdc3405be47df
ReplyDeletesariyer
tekman
akcadag
zara
buyukcekmece
omerli
guzelyurt
ardanuc
siverek
Congratulations on your article, it was very helpful and successful. 96cf20e8cb5a1cf89bee1528bf307717
ReplyDeletewebsite kurma
website kurma
sms onay
Thank you for your explanation, very good content. 2412172ee3910482daba55b26dd2b415
ReplyDeletealtın dedektörü
Good content. You write beautiful things.
ReplyDeletekorsan taksi
hacklink
vbet
sportsbet
mrbahis
vbet
mrbahis
sportsbet
taksi
betmatik
ReplyDeletekralbet
betpark
mobil ödeme bahis
tipobet
slot siteleri
kibris bahis siteleri
poker siteleri
bonus veren siteler
3J1
Thanks for adding it to my knowledge. You are wonderful writer. Your articles are very helpful and easy to understand.
ReplyDeleteTOEFL Coaching in Vadodara
YHVGHVFJUH
ReplyDeleteشركة نقل اثاث بجازان
Cool and I have a tremendous supply: Who Repair House Windows split level renovations
ReplyDelete