我在TextView
中使用ListView
组件。有时我在TextView
中的文字上有链接,我想点击它们打开浏览器。
我的文字中的所有链接都有一个标记:
这是我的文字的一个例子。 This is link
出于这个目的,我使用:
textView.setText(Html.fromHtml(someTextString));
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setAutoLinkMask(Linkify.WEB_URLS);
textView.setLinksClickable(true);
一切都很好,但如果我放一些文字:
这是一个示例文本。 link.thing
在该案例中,link.thing
被选为链接。
如何在<a></a>
标签之间建立仅可点击的链接?
答案 0 :(得分:1)
添加
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());
答案 1 :(得分:0)
这样你可以设置链接,它会自动找到链接
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);
}