我想实现用一个TextView中间某一小段文字做成超链接,点击后能调用系统默认浏览器,跳转到指定网页这么一个功能。自己先折腾了一下没搞定,又在网上看了很多资料,很多都说在代码中用什么Spanned、Html.fromHtml()之类的来设置TextView,搞得还挺复杂,然后在布局里给Textview里添加 android:autoLink="web"、android:linksClickable="true"什么什么的,但各种方法我都试了,不知道为什么,居然全都是Shit!点击后还是没任何反应。
最后无奈还得上StackOverflow查了一下,结果找到正解了!而且竟然实现起来比绝大多数人说的方法都简单得多!废话不多说,我马上把实现方法贴在下面:
1)首先在strings.xml文件中直接写上TextView要显示的超链接文字,如下,超链接用html标签的写法来就行了
<string name="signup_agreeTerms">我同意<a href="http://www.baidu.com/">用户协议</a>中的所有内容</string>
2)然后你得在布局中拥有一个这样的TextView,注意,不要再添加什么autoLink、linksClickable属性之类的
<TextView android:id="@+id/signup_txt_agreeTerms" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/signup_agreeTerms"/>
3)在你的Activity中,添加如下代码
TextView textview = (TextView) findViewById(R.id.signup_txt_agreeTerms); textview.setMovementMethod(LinkMovementMethod.getInstance()); //其实就这一句是关键
这样就OK了,实在是太简单了……
附上参考的StackOverflow地址:How do I make links in a TextView clickable?
时间: 2024-10-11 12:08:07