我使用Html.fromHtml将html设置为textview,并在点击链接href时想要处理。 我想获得链接的链接和文本内容。 例如:
输出:http://stackoverflow.com + StackOver。
我在堆栈上找到了很多解决方案,但对我没有帮助。我只得到链接,无法获取链接的上下文文本。
请帮帮我。
这是我的代码(仅获取链接):
protected void makeLinkClickable(final SpannableStringBuilder strBuilder, final URLSpan span, final String title, final int lenght) {
int start = strBuilder.getSpanStart(span);
int end = strBuilder.getSpanEnd(span);
int flags = strBuilder.getSpanFlags(span);
ClickableSpan clickable = new ClickableSpan() {
public void onClick(View view) {
Toast.makeText(context, span.getURL(), Toast.LENGTH_SHORT).show();
}
};
strBuilder.setSpan(clickable, start, end, flags);
strBuilder.removeSpan(span);
}
protected void setTextViewHTML(TextView text, String html, String title) {
CharSequence sequence = Html.fromHtml(html);
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
for (URLSpan span : urls) {
makeLinkClickable(strBuilder, span, title, urls.length);
}
text.setText(strBuilder);
text.setMovementMethod(LinkMovementMethod.getInstance());
}