TextView 上可以设置链接,可以自定义点击事件,但设置多个就比较麻烦了,这里写了个简单的工具方法设置多项点击,并把链接的下划线去掉。
public final class TextHelper {
/**
* 将文字转成连接,可以点击,产生点击事件.
* 定义格式为 [show text],为链接, 点击事件的key为从0开始的链接的次序.
* <br/>
* 如果需要多次添加span,这个应该放在第一个转义.后面再做imageSpan等操作.
*
* @param source 待转义的字符.
* @return
*/
public static Spannable getLinkSpan(int color, CharSequence source, WpClickSpan.OnSpanClickListener listener) {
SpannableStringBuilder ssb = new SpannableStringBuilder(source);
// 1. 找到所有的位置.记录下
// 2. 替换掉格式[], 转成要显示的文本
// 3. 添加点击span.添加事件.
Pattern pattern = Pattern.compile("\\[.+?\\]");
final Matcher matcher = pattern.matcher(source);
int offset = 0;
//存放所有的链接起始点和终点位置z
//这里需要注意的是每替换一次会有2个位置的偏移
List&