Android中捕获TTextView文本中的链接点击事件方法
Android中的TTextView很强大,我们可以不仅可以设置纯文本为其内容,还可以设置包含网址和电子邮件地址的内容,并且使得这些点击可以点击。但是我们可以捕获并控制这些链接的点击事件么,当然是可以的。
本文将一个超级简单的例子介绍一下如何实现在AndroidTextView捕获链接的点击事件。
关键实现
实现原理就是将所有的URL设置成ClickSpan,然后在它的onClick事件中加入你想要的控制逻辑就可以了。
privatevoidsetLinkClickable(finalSpannableStringBuilderclickableHtmlBuilder,
finalURLSpanurlSpan){
intstart=clickableHtmlBuilder.getSpanStart(urlSpan);
intend=clickableHtmlBuilder.getSpanEnd(urlSpan);
intflags=clickableHtmlBuilder.getSpanFlags(urlSpan);
ClickableSpanclickableSpan=newClickableSpan(){
publicvoidonClick(Viewview){
//DosomethingwithURLhere.
}
};
clickableHtmlBuilder.setSpan(clickableSpan,start,end,flags);
}
privateCharSequencegetClickableHtml(Stringhtml){ SpannedspannedHtml=Html.fromHtml(html); SpannableStringBuilderclickableHtmlBuilder=newSpannableStringBuilder(spannedHtml); URLSpan[]urls=clickableHtmlBuilder.getSpans(0,spannedHtml.length(),URLSpan.class); for(finalURLSpanspan:urls){ setLinkClickable(clickableHtmlBuilder,span); } returnclickableHtmlBuilder; }
热门推荐
8 贫困户祝福语简短
10 带清的简短祝福语
11 送灯祝福语简短独特
12 送外卖祝福语大全简短
13 叔叔生日祝福语简短励志
14 比较简短浪漫的祝福语
15 新疆新年祝福语大全简短
16 妈妈祝福语简短16字
17 给婴儿祝福语简短的话
18 医生节蛋糕祝福语简短