如何处理Android中的Textview链接点击?

时间:2016-06-01 02:14:48

标签: android

我使用Html.fromHtml将html设置为textview,并在点击链接href时想要处理。 我想获得链接的链接和文本内容。 例如:

StackOver

输出: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());
}

0 个答案:

没有答案