TextView上的自动链接web有错误的结果



我在ListView中使用TextView组件。有时我在TextView中的文本上有一个链接,我想通过点击它们来打开浏览器。我文本中的所有链接都有一个标签:

这是我的一个例子。这是链接

为此,我使用:

textView.setText(Html.fromHtml(someTextString)); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setAutoLinkMask(Linkify.WEB_URLS); textView.setLinksClickable(true);

一切都很好,但如果我放一些文字:

这是一个示例文本。链接.thing

在这种情况下,link.thing被选为链接。如何使<a></a>标签之间的链接仅可点击?

添加

android:text="@string/Your_String_Contain"

现在这在中起着至关重要的作用

<string name="Your_String_Contain">This is an example of my text  <a href="http://www.yourlink.com">This is link</a></string>

然后只需呼叫setMovementMethod

TextView Tv_App_Link=(TextView)findViewById(R.id.Your_Textview_Id);
Tv_App_Link.setMovementMethod(LinkMovementMethod.getInstance());

这样你就可以设置链接,它会自动找出链接

  String myHtmlStr = "<a href=www.google.com>click here</a>";
            setTextViewHTML(myTextView, myHtmlStr);

你可以实现这种的方法

 protected void setTextViewHTML(TextView text, String html) {
            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);
            }
            text.setText(strBuilder);
        } 
protected void makeLinkClickable(SpannableStringBuilder strBuilder, final URLSpan span) {
            int start = strBuilder.getSpanStart(span);
            int end = strBuilder.getSpanEnd(span);
            int flags = strBuilder.getSpanFlags(span);
            TouchableSpan touchableSpan = new TouchableSpan() {
                @Override
                public void onClick(View widget) {
                  //your logic
                }
            };
            touchableSpan.setURLSpan(span);
            strBuilder.setSpan(touchableSpan, start, end, flags);
            strBuilder.removeSpan(span);
        }

相关内容

  • 没有找到相关文章

最新更新