超简单实现TextView中某段文字超链接点击打开浏览器跳转到网页

我想实现用一个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

超简单实现TextView中某段文字超链接点击打开浏览器跳转到网页的相关文章

android TextView中识别多个url并分别点击跳转

实现方案:private String pattern = "((http|ftp|https)://)(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?|(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\

Android实现TextView中部分文字监听事件

通常我们只需要用TextView来显示文本信息,展示给用户看,而把点击相应的监听事件交给Button等控件来处理,当然TextView也可以实现点击事件.有时候我们要对TextView中的部分文字进行点击,我们应该如何操作呢?一般有以下三种方式: 1,在布局文件中设置TextView的android:autoLink属性,比如设置android:autoLink="phone",则可以点击手机号码直接拨打电话.android:autoLink设置是否当文本为URL链接/email/电话

一段文字中的几个keyword显示高亮

将一段文字中的几个keyword显示高亮 演示样例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span style="font-size:18px;">public class MainActivity extends Activity { private static TextView mTextView; //须要显示的文字 private static String keywor

ExtJS5 (一) 超简单整合到eclipse中,搭建简单的开发环境

个人一直欣赏大神们的唯美前端页面,而现在个人从事的是MIS系统等相关的开发,故决定学习ExtJS,目前最新版本是5.0,就从5.0开始吧. 作为java开发人员,自然而然的想在eclipse中搞个extjs的简单开发环境,以后再慢慢丰富,开始吧~ 第一步:从官网下载extjs,目前是5.0版本 第二步:用eclipse创建一个动态web工程 第三步:在工程的WebContent目录下创建一个文件夹,叫作ExtJS5. 第四步:解压从官网下载的extjs,解压之后,目录结构如下: 看一下根目录下的

一段文字中的几个关键字显示高亮

将一段文字中的几个关键字显示高亮 示例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span style="font-size:18px;">public class MainActivity extends Activity { private static TextView mTextView; //需要显示的文字 private static String keywords=&qu

C语言K&R习题系列——统计一段文字中各个字母出现的频率

原题: /*Write a program to print a histogram of the frequencies of *difficent characters in it inputs */ 这个和上一个类似 输入部分 #include < stdio.h >    #define NUM_CHARS 256    main ( void )  { int c; int done = 0; int thisIdx = 0; long frequrr[NUM_CHARS + 1];

Android TextView中展示含有html标签的文字

两个小实例: 1.服务端返回的带有html标签的文字,在textview中展示的时候,能正确的换行. 2.需要展示的下载的超链接,以文字代替,隐藏下载地址: 实现效果如下: 代码如下: package com.android.study; import android.app.Activity; import android.os.Bundle; import android.text.Html; import android.text.method.LinkMovementMethod; im

输入一段文字(里面仅有汉字和数字组成),输出这段文字中汉字的个数。

Console.WriteLine("请输入一段文字:"); string str = Console.ReadLine(); int sum =str.Length;//定义一个值变量用来记录汉字的个数. for (int i = 0; i < str.Length; i++) { string s = str.Substring(i, 1); try { int a = int.Parse(s); sum--; } catch { } } Console.WriteLine(

原创: 开题报告中摘要部分快速将一段文字插入到word的表格中

开题报告的摘要是表格形式,之前需要一个一个字的敲入,十分不方便修改. 所以百度了一下方法.现总结如下: 达到的效果 1 将这段文字复制粘贴到word中,在word文件中的每一个字与字之间插入空格.如何在word文件中的每一个字与字之间插入空格? 全选文字,使用WORD中的查找替换功能(快捷键是CTRL+H) 查找内容:?替换为:^&空格   (键盘空格键输入空格,想输几个都行)高级选项勾选使用通配符,全部替换. 2 将上一步中得到的文字复制粘贴到txt中,按照摘要表格中对应的列数分行. 3 再将