package com.TextHtml; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.URLSpan; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class TextHtml extends Activity { /** Called when the activity is first created. */ private TextView tv; static Context ctx=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ctx=this; tv = (TextView) findViewById(R.id.tv); String htmlLinkText = "<a href="/" mce_href="/""http://www.baidu.com/"><u>我的CSDN博客 </u></a>"; tv.setText(Html.fromHtml(htmlLinkText)); tv.setMovementMethod(LinkMovementMethod.getInstance()); CharSequence text = tv.getText(); if(text instanceof Spannable){ int end = text.length(); Spannable sp = (Spannable)tv.getText(); URLSpan[] urls=sp.getSpans(0, end, URLSpan.class); SpannableStringBuilder style=new SpannableStringBuilder(text); style.clearSpans();//should clear old spans for(URLSpan url : urls){ MyURLSpan myURLSpan = new MyURLSpan(url.getURL()); style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } tv.setText(style); } } private static class MyURLSpan extends ClickableSpan{ private String mUrl; MyURLSpan(String url) { mUrl =url; } @Override public void onClick(View widget) { // TODO Auto-generated method stub Toast.makeText(ctx, “hello!”,Toast.LENGTH_LONG).show(); } } }Android自定义TextView中的超链接点击事件处理
Android自定义TextView中的超链接点击事件处理
最新推荐文章于 2021-05-30 13:44:37 发布