1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android过滤html标签 Android中处理TextView带超链接HTML标签的点击事件处理方法

android过滤html标签 Android中处理TextView带超链接HTML标签的点击事件处理方法

时间:2021-01-25 04:02:12

相关推荐

android过滤html标签 Android中处理TextView带超链接HTML标签的点击事件处理方法

主要的处理方法:

/**

* 格式化超链接文本内容并设置点击处理

* */

private CharSequence getClickableHtml(String html) {

Spanned spannedHtml = Html.fromHtml(html);

SpannableStringBuilder clickableHtmlBuilder = new SpannableStringBuilder(spannedHtml);

URLSpan[] urls = clickableHtmlBuilder.getSpans(0, spannedHtml.length(), URLSpan.class);

for(final URLSpan span : urls) {

setLinkClickable(clickableHtmlBuilder, span);

}

return clickableHtmlBuilder;

}

/**

* 设置点击超链接对应的处理内容

* */

private void setLinkClickable(final SpannableStringBuilder clickableHtmlBuilder,final URLSpan urlSpan) {

int start = clickableHtmlBuilder.getSpanStart(urlSpan);

int end = clickableHtmlBuilder.getSpanEnd(urlSpan);

int flags = clickableHtmlBuilder.getSpanFlags(urlSpan);

ClickableSpan clickableSpan = new ClickableSpan() {

public void onClick(View view) {

LogW.i("URL-click:"+urlSpan.getURL());

}

};

clickableHtmlBuilder.setSpan(clickableSpan, start, end, flags);

}

实际调用场景:

//一串带超链接的文本内容

String context = "这是一个测试内容点我跳转";

TextView textview = findviewById(R.id.textview);

textview.setText(getClickableHtml(context );

//这一句很重要,否则ClickableSpan内的onClick方法将无法触发!!

textview.setMovementMethod(LinkMovementMethod.getInstance());

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。