布局文件xml

1 <TextView2                 android:layout_width="match_parent"3                 android:layout_height="match_parent"4                 android:id="@+id/test_note"5                 android:autoLink="all"6                 />

这里autoLink="all"就是链接所有类型的,包括网址,电话,邮件地址什么的。

Java代码里,对链接的事件进行监听。

 1 package com.jayce.testlink; 2  3 import android.net.Uri; 4 import android.os.Bundle; 5 import android.app.Activity; 6 import android.content.Intent; 7 import android.text.Spannable; 8 import android.text.SpannableStringBuilder; 9 import android.text.style.ClickableSpan;10 import android.text.style.URLSpan;11 import android.util.Log;12 import android.view.View;13 import android.view.View.OnClickListener;14 import android.widget.TextView;15 16 public class TextLinkActivity extends Activity {17 18     @Override19     public void onCreate(Bundle savedInstanceState) {20         super.onCreate(savedInstanceState);21         setContentView(R.layout.activity_text_link);22         TextView tv = (TextView)findViewById(R.id.test_note);23         CharSequence text = tv.getText(); 24         /*25          * 以下是textview的内容(这里给了3个示例链接和一个普通字符串)26          * 1388888888827          * www.google.com28          * test@gmail.com29          * jaycetest30          */31         if (text instanceof Spannable) {  32             int end = text.length();33             Spannable sp = (Spannable) tv.getText();  34             URLSpan[] spans = sp.getSpans(0, end, URLSpan.class);  35             SpannableStringBuilder style = new SpannableStringBuilder(text);  36             style.clearSpans();// should clear old spans  37             for (URLSpan span : spans) {  38                 JayceSpan mySpan = new JayceSpan(span.getURL());  39                 style.setSpan(mySpan, sp.getSpanStart(span), sp.getSpanEnd(span), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);  40             }  41             tv.setText(style); 42         }43         tv.setOnClickListener(new OnClickListener(){44 45             @Override46             public void onClick(View v) {47                 // TODO Auto-generated method stub48                 /*49                  * 这里是对所有点击消息的监听50                  * 可以把链接的做标记剔除后监听非链接的点击51                  * 比如jaycetest区域的点击52                  */53             }});54     }55     56     private  class JayceSpan extends ClickableSpan {  57           58         private String mSpan;  59   60         JayceSpan(String span) {  61             mSpan = span;  62         }  63   64         @Override  65         public void onClick(View widget) {  66             Log.e("jayce", "span:" + mSpan);67             /*链接被点击68              * 这里可以做一些自己定义的操作69              */70             Intent intent = new Intent(Intent.ACTION_VIEW);71             intent.setData(Uri.parse(mSpan));72             startActivity(intent);73         }  74     }  75 76 }

更多相关文章

  1. android AlertDialog 弹窗自定义布局 点击外部不关闭弹窗
  2. 【Android】android按钮的四种点击事件
  3. android 弹出窗口
  4. 刚学会百度地图最新版的sdk,总结一个简单的demo
  5. Android(安卓)OnTouchListener实时监听触点坐标,需要同时监听OnCl
  6. Android(安卓)TextView中链接(link)点击事件的截取
  7. android广播监听短信并显示内容
  8. Android传感器
  9. Android(安卓)ExpandableListView同时显示多种不同类型字列表

随机推荐

  1. Android(安卓)library projects cannot b
  2. android常见技巧---Android按返回键退出
  3. 2011.08.12——— android MediaPlayer
  4. 2011.08.12——— android MediaPlayer
  5. android读取plist文件
  6. Android-Layout布局
  7. Android(安卓)P系统设置之默认选择网络类
  8. android上,实现直接在屏幕上显示点击位置,
  9. android SQLite操作
  10. android 自定义ratingbar 图片显示不全的