Android超链接

第一种:

text += "<a href='http://www.baidu.com'>百度超链接</a>";
CharSequence charSequence = Html.fromHtml(text);
textview.setText(charSequence);
textview.setMovementMethod(LinkMovementMethod.getInstance());

Html.fromHtml为什么返回CharSequence?
答:TextView是不只可以String的,我们平常用的给setText()方法传递String参数的时候,其实是调用的public final void setText (CharSequence text)方法,String类是CharSequence的子类。
而CharSequence子类众多,其中有一个接口Spanned,即类似html的带标记的文本。我们可以用它来在TextView中显示html(自然,有很多html标记是不支持的,只支持一部分)。 

第二种:

<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="all" />
textview = (TextView) findViewById(R.id.textview);
String str = "我的号码:13926190296\n";
str += "百度的网址:http://www.baidu.com";
textview.setText(str);
textview.setMovementMethod(LinkMovementMethod.getInstance());

第三种:

复制代码
textview = (TextView) findViewById(R.id.textview);
String text = "百度连接\n";
SpannableString str = new SpannableString(text);
Object obj = new URLSpan("http://www.baidu.com");
str.setSpan(obj, 0, 4, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(str);
textview.setMovementMethod(LinkMovementMethod.getInstance());
复制代码

第四种(图片做链接): 

复制代码
String text = "百度链接";
SpannableString str = new SpannableString(text);
Resources resources = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(resources, R.drawable.ic_launcher);
Object obj0 = new ImageSpan(MainActivity.this,bitmap);
Object obj1 = new URLSpan("http://www.baidu.com");
str.setSpan(obj0, 0, 4, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
str.setSpan(obj1, 0, 4, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(str);
textview.setMovementMethod(LinkMovementMethod.getInstance());
复制代码

注:

textview.setMovementMethod(LinkMovementMethod.getInstance());

是必须要的

posted @   嘉禾世兴  阅读(401)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示