以下代码可以同时支持纯文本链接和带有HTML标签的链接:
在xml中使用TexView
<TextView
android:id="@+id/txt_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000"
android:textColorLink="#06b" />
在activity.java中:
String text = "this is the link with anchor tag <a href=\"http://www.google.com\">Google</a>. here is the plain text link http://www.google.com";
TextView textView = (TextView) findViewById(R.id.txt_view);
textView.setText(getParsedLinks(text));
textView.setMovementMethod(LinkMovementMethod.getInstance());
不要在xml中使用android:autoLink="all"或者在代码中使用Linkify.addLinks(textView, Linkify.ALL),而是使用下面的方法将Linkify.addLinks应用于SpannableString。
SpannableString getParsedLinks(String txt){
Spanned span = Html.fromHtml(txt);
URLSpan[] urlSpans = span.getSpans(0, span.length(), URLSpan.class);
SpannableString s = new SpannableString(span);
Linkify.addLinks(s, Linkify.ALL);
for (URLSpan urlSpan : urlSpans) {
s.setSpan(urlSpan, span.getSpanStart(urlSpan), span.getSpanEnd(urlSpan), 0);
}
return s;
}
<a href=
,然后根据它选择其中的一个吗? - Ben P.