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());
總結
以上是生活随笔為你收集整理的android过滤html标签,Android中处理TextView带超链接HTML标签的点击事件处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二级c语言函数调用题,2013年计算机二
- 下一篇: 杜海涛事件怎么回事(杜海涛跪拜韩星事件震