Android TextView中链接(link)点击事件的截取
2017-06-10 17:37
429 查看
布局文件xml
Java代码里,对链接的事件进行监听。
来源: http://www.cnblogs.com/jayceli/archive/2012/09/03/2669475.html
来自为知笔记(Wiz)
1 <TextView 2 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 @Override 19 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 * 13888888888 27 * www.google.com 28 * test@gmail.com 29 * jaycetest 30 */
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 @Override 46 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 }
来源: http://www.cnblogs.com/jayceli/archive/2012/09/03/2669475.html
来自为知笔记(Wiz)
相关文章推荐
- Android TextView中链接(link)点击事件的截取
- Android TextView中链接(link)点击事件的截取
- Android TextView中链接(link)点击事件的截取
- android TextView中超链接的事件捕捉(textview上LINK的点击事件)
- 转:android TextView中超链接的事件捕捉(textview上LINK的点击事件)
- android TextView中超链接的事件捕捉(textview上LINK的点击事件)
- android textview 自动链接网址 修改默认点击事件
- android textview 自动链接网址 修改默认点击事件
- Android之TextView------LINK的点击事件
- Android学习—— TextView ClickableSpan 点击链接事件 改超链接颜色
- Android之TextView------LINK的点击事件
- textview设置属性autolink后,点击网址链接如何捕捉到点击事件或者如何让其跳转到特定的app activity中
- Android自定义TextView链接点击和长按事件
- 【android】短信中包含链接的textview的点击处理
- android如果给TextView或EditText的email链接加下划线,并在点击在email连接上可以弹框显示
- Android开发给TextView添加点击事件
- Android开发给TextView添加点击事件
- 点击TextView中链接,自定义处理事件
- Android中捕获TTextView文本中的链接点击事件方法
- android textview 自动连接网址及修改默认点击事件