实现文本链接

其中tv是TextView类型的控件。只需写java代码即可实现链接,无需在xml文件中进行其他的设置。

  1. SpannableString spanTxt = new SpannableString("欢迎访问我的博客——Killerlegend的博客……");   
  2.         spanTxt.setSpan(new URLSpan("http://www.cnblogs.com/killerlegend/"), 0, spanTxt.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);   
  3.         tv.append("\n"+"\n"+"\n");   
  4.         tv.append(spanTxt);   
  5.         //让URLSpan可以点击   
  6.         tv.setMovementMethod(new LinkMovementMethod());  

setSpan方法的定义如下:

public abstract void setSpan (Object what, int start, int end, int flags)

flags含义请参见:

https://developer.android.com/reference/android/text/Spanned.html

下面说几种比较常用的flags,关于下面的这几种flags的意义,都是指定对于在span中新加入字符时如何处理的。

public static final int SPAN_EXCLUSIVE_EXCLUSIVE
public static final int SPAN_POINT_MARK

以上两者等价。均不包含文本首尾。即在该文本的首尾加入新的字符,那么span的设置是不会应用到新加入的字符的。以下其他可以类比推理。

public static final int SPAN_EXCLUSIVE_INCLUSIVE

不包含首,包含尾。

public static final int SPAN_INCLUSIVE_EXCLUSIVE

包含首,不包含尾。

public static final int SPAN_INCLUSIVE_INCLUSIVE
public static final int SPAN_MARK_POINT

以上两者等价。均包含首尾。

常见的Object有:

URLSpan():其中可以为一个网址或者电话号,用于链接比如:

URLSpan(http://user.qzone.qq.com/1191509410/main)

URLSpan("tel:1008611")

BackgroundColorSpan(Color.parseColor(String para))

ForegroundColorSpan(Color.parseColor(String para))

分别用于设置span的背景前景色,其中的para为字符类型。

……(后续仍会加入……)

最后不要忘记了:

Object.setMovementMethod(LinkMovementMethod.getInstance());

Object.setText(span)

以应用span。

相关文章:

  • 2021-10-26
  • 2021-10-18
  • 2022-02-28
  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
猜你喜欢
  • 2022-12-23
  • 2021-09-30
  • 2022-01-05
  • 2021-07-15
  • 2021-07-11
  • 2022-12-23
  • 2021-09-28
相关资源
相似解决方案