怎么在Android中利用TextView实现超链接

  介绍

今天就跟大家聊聊有关怎么在Android中利用TextView实现超链接,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1。直接在xml文件中配置autoLink属性(简单易用,效果单一)

autoLink属性一共有六个值,分别是没有(正常),网络(将文本识别为一个网址),电话(将文本识别为一个电话号码),邮件(将文本识别为一个邮件地址),地图(这个,呃,该怎么表述呢?会打开地图应用),所有(根据文本自动识别)。一般情况下我们设置为所有即可,我们看看,这个时候它就会自动将TextView中的电话号码,邮件地址,网页链接等识别出来,这中方式是最简单的一种。如:

& lt; TextView   ,,,android: layout_width=癴ill_parent"   ,,,android: layout_height=皐rap_content"   ,,,android: autoLink=癮ll"   ,,,android:文本=?   ,,,android: textSize=?6 dp",/在

2。使用HTML语言

我们知道TextView可以直接显示转换后的HTML,那么借助H5开发经验,我们知道网页中的超链接也可以在TextView中打开,如下:

只要我们写好协议,这个其实也很简单。

, tv1.setText (Html.fromHtml (“& lt; a  href=& # 39;电话:18565554482 & # 39;在打电话& lt;/a>, & lt; a  href=& # 39; smsto: 18565554482 & # 39;在发短信& lt;/a>, & lt; a  href=& # 39; mailto: 584991843 @qq.com& # 39;在发邮件& lt;/a>, & lt; a  href=& # 39; http://www.baidu.com& # 39;在去百度& lt;/a>“)),,   tv1.setMovementMethod才能(LinkMovementMethod.getInstance ());

3。在strings.xml中直接写HTML,然后在TextView的xml中直接引用即可(跟第二种方法差不多)

字符串。xml中的定义如下:

& lt; string  name=皌v4"祝辞& lt; a  href=& # 39;电话:18565554482 & # 39;在打电话& lt;/a> & lt; a  href=& # 39; smsto: 18565554482 & # 39;在发短信& lt;/a> & lt; a  href=& # 39; mailto: 584991843 @qq.com& # 39;在发邮件& lt;/a> & lt; a  href=& # 39; http://www.baidu.com& # 39;在去百度& lt;/a> & lt;/string>

TextView的xml定义如下:

& lt; TextView    ,,,android: id=癅 + id/tv4",   ,,,android: layout_width=癿atch_parent",   ,,,android: layout_height=?8 dp",   ,,,android:重力=癱enter",   ,,,android:文本=癅string/tv4",   ,,,android: textSize=?4 sp",在,   & lt;才能/TextView>

然后只需要在活动中设置该TextView为可点击状态即可:

tv4.setMovementMethod (LinkMovementMethod.getInstance ());,

4。使用SpannableString实现超链接(效果多样)

关于SpannableString的更多使用,参见另一篇:

SpannableString  ss =, new  SpannableString(“打电话,发短信,发邮件,去百度“),,   ss.setSpan (new  URLSpan(“电话号码:18565554482“),0,,3,,   ,,,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE),,   ss.setSpan (new  URLSpan (“smsto: 18565554482“),,,,,,   ,,,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE),,   ss.setSpan (new  URLSpan (“mailto: 584991843 @qq.com"), 8日,11日,   ,,,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE),,   ss.setSpan (new  URLSpan (“http://www.baidu.com"), 12日,16日,   ,,,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE),,//SpannableString对象设置给TextView    tv3.setText (ss),,//设置TextView可点击,   tv3.setMovementMethod (LinkMovementMethod.getInstance ());

5。使用SpannableTextView实现(效果多样)

设置单一效果:

,//Setup  single 跨越   SpannableTextView  tv1 =, (SpannableTextView), view.findViewById (R.id.tv1);   ,   Span  span1 =,,,new  Span.Builder (“ForegroundSpan,, BackgroundSpan,,以及CustomTypefaceSpan")   ,,,,,,,.foregroundColor (R.color.purple_500)   ,,,,,,,.backgroundColor (R.color.green_500)   ,,,,,,,.typeface (mItalicFont)   ,,,,,,,.build ();   ,   tv1.setFormattedText (span1);

设置多重效果叠加:

//, Setup  multiple 跨越   SpannableTextView  tv2 =, (SpannableTextView), view.findViewById (R.id.tv2);   ,   List怎么在Android中利用TextView实现超链接