Android之TextView------LINK的点击事件
16lz
2021-01-23
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=\\" +"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的博客——固都的BLOG
- Android 端 博客园闪存——alpha版
- Android 应用开发中国大学生挑战赛 & 大学生博客分享
- 好的android 相关的技术博客
- Android腾讯微博客户端开发一:在下方的Tab的实现
- [置顶] [转]android开发新浪微博客户端 完整攻略 [新手必读]