给TextView中的部分文本添加链接的两种方式
来源:互联网 发布:淘宝达人大v认证包过 编辑:程序博客网 时间:2024/06/05 07:12
方式一:在布局文件中给TextView制定autoLink属性,例如:
<TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="email" android:layout_marginTop="30dp" android:text="你好www.baidu.com是的吗"/>
其中autoLink的属性值包括none,web,email,phone,map,all,这些属性值都是自动识别的,不用做任何处理
另外,对于autoLink属性,我们也可以在java代码中指定:
tv.setAutoLinkMask(Linkify.WEB_URLS);
方式二:通过java代码自定义链接,添加单击事件
public class MainActivity extends ActionBarActivity{ private int systemVersion; private TextView tv; static Context ctx = null ;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_linearlayout); ctx = this ; tv = (TextView) findViewById(R.id.tv); String htmlLinkText= "麻烦请<a href='aaa'>点击</a>这里的高规格的奋斗奋斗粉丝粉丝都刚刚<a href='bbb'>三国杀</a>广东省三国杀的广东分公司对该公司对刚刚SD敢达干豆腐"; tv.setText(Html.fromHtml(htmlLinkText)); //将字符串格式化成html文本 tv.setMovementMethod(LinkMovementMethod.getInstance());//使TextView可以执行链接 // tv.setAutoLinkMask(Linkify.WEB_URLS); CharSequence text = tv.getText(); if (text instanceof Spannable){ int end = text.length(); Spannable sp = (Spannable)tv.getText(); //获取textView中的多个链接组成数组 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 //当textView中有多个连接要执行时,可以根据mUrl来区分是哪一个链接没单击了,例如这里的两个链接分别是aaa和bbb Toast.makeText(ctx, " hello! "+mUrl ,Toast.LENGTH_LONG).show(); } } }
0 0
- 给TextView中的部分文本添加链接的两种方式
- TextView中的文本链接之--链接的几种方式
- Android---10---TextView添加链接的两种方式
- android:TextView中的文本链接之--链接的几种方式
- android:TextView中的文本链接之--链接的几种方式
- 一段文本内容中展示网址链接---TTTAttributedLabel链接点击和textView两种方式实现
- 富文本的使用之一 给TextView部分字段添加点击事件
- 给TextView添加超链接的四种方式
- textView添加超链接(两种方式)
- 给TextView中的部分文字变色和添加点击
- 关于给springboot添加定时器的两种方式
- TextView中的文本实现部分响应点击
- android给textview中的文字加链接
- Android中TextView中添加的文本上下两行又重叠
- 两种方式给UIImage添加六边形边框
- 给TextView设置图片的两种实现方法
- 给TextView设置图片的两种实现方法
- 关于TextView获取文本添加拨号和网页链接功能
- poj2499 Remmarguts' Date 第K短路(spfa+A*)
- xml布局内容总结(二)--Android
- 图片中hspace 和 vspace 属性
- 创建父窗口和子窗口,子窗口在父窗口里
- Linux文件系统的管理
- 给TextView中的部分文本添加链接的两种方式
- AD 软件使用心得记录
- go 操作mysql、增删改查
- hdu 1002 A + B Problem II
- 初识双网卡
- 小胖学PHP总结5-----PHP操作SQL数据库(Deprecated: mysql_connect(): The mysql extension is deprecated and will)
- CNTV视频回看下载地址
- 验证码短信接口可以广泛应用在网站会员手机验证、APP应用手机验证、订单通知、物流提醒等触发类短信应用。
- 完整java开发中JDBC连接数据库代码和步骤