【发布时间】:2014-10-26 11:28:34
【问题描述】:
我正在尝试在TextView 中添加Linkify 主题标签。
这就是我提供的示例代码,但我需要在找到的基于match.group(1) 的主题标签下划线。
Linkify 似乎基于match.group(0) 下划线。
使用TransformFilter,我只能更改主题标签的点击目标,而不是下划线链接的预览。
作为总结,Linkify 在match.group(0) 上创建下划线,但我想在match.group(1) 上添加下划线
TextView tv_body = (TextView) view.findViewById(R.id.tv_body);
final Pattern pattern = Pattern.compile(
"(?:^|\\W)#([A-Za-z\\d\u00E7\u011F\u0131\u015F\u00F6\u00FC\u00C7\u011E\u0130\u015E\u00D6\u00DC]+)");
String scheme = "search://";
TransformFilter filter = new TransformFilter()
{
public final String transformUrl(final Matcher match, String url)
{
Log.d(Constants.TAG, "transformUrl - match.group(0):" +
match.group(0) + " - match.group(1):" + match.group(1));
return match.group(1);
}
};
Linkify.addLinks(tv_body, pattern, scheme, null, filter);
transformUrl - match.group(0):##dene - match.group(1):dene
transformUrl - match.group(0):#hashreal - match.group(1):hashreal transformUrl - match.group(0):+#arti - match.group(1):arti
transformUrl - match.group(0):(#de - match.group(1):de
transformUrl - match.group(0):#feriştah - match.group(1):feriştah
/*
tv_body text content:
nb#dnkjd
##dene
#hashreal
1#2
+#arti
%d(#de
#feriştah
şah#in
*/
【问题讨论】:
-
如果 Linkify 实现还不够,您仍然可以将 Spannable.setSpan 与 URLSpan/ClickableSpan 跨度对象一起使用