知道这很晚了。只是觉得别人也可能会觉得这很有用。
你可以实现你自己的ClickableSpan
来实现这一点。您可以从头创建一个Spannable并分配给TextView
像:
Spannable text = Spannable.newSpannable("Source text with link");
ClickableSpan link = new ClickableSpan {
public abstract void onClick (View widget) {
// Implement your own link behaviour
}
}
text.setSpan(clickable, startPos, endPos, flags);
textView.setText(text);
或者,如果你的来源是HTML,您可以使用Html.fromHtml("Source text with <a href='whatever'>link</a>")
其解析HTML并转换成链接为URLSpan你。然后,您需要用您自己的ClickableSpan
替换上述所有URLSpan
。 (见Spanned#getSpans和Spannable)
这可能很乏味。因此我创建了一个库来简化这个问题。随着Textoo就可以实现同样喜欢:
Spanned linksLoggingText = Textoo
.config("Links: <a href='http://www.google.com'>Google</a>")
.parseHtml()
.addLinksHandler(new LinksHandler() {
@Override
public boolean onClick(View view, String url) {
Log.i("MyActivity", "Linking to google...");
return false; // event not handled. Continue default processing i.e. link to google
}
})
.apply();
这将是很好,如果你可以格式化你的问题,以添加一些空间,也使您的问题在一个单独的段落。这样你的问题会吸引更多的人:) – hoomi 2014-08-30 10:57:57
感谢您的提示。完成 – 2014-08-30 11:00:01
为什么你不能在列表视图中拥有最爱? – Breadbin 2014-08-30 12:13:47