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; }
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短