TextView tv = (TextView) findViewById(R.id.txtView);
ctx = this;
String htmlLinkText = "";
htmlLinkText = "<a style=\"color:red;\" href=\""+strUrl+"\">三孔游</a>";
// 文字的样式(style)被覆盖,不能改变……
tv.setText(Html.fromHtml(htmlLinkText));
tv.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = tv.getText();
if (text instanceof Spannable) {
int end = text.length();
Spannable sp = (Spannable) tv.getText();
URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.clearSpans();// should clear old spans
for (URLSpan url : urls) {
MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
style.setSpan(myURLSpan, sp.getSpanStart(url),
sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
}
tv.setText(style);
}
private static class MyURLSpan extends ClickableSpan {
private String mUrl;
MyURLSpan(String url) {
mUrl = url;
}
@Override
public void onClick(View widget) {
Toast.makeText(ctx, mUrl, Toast.LENGTH_LONG).show();
widget.setBackgroundColor(Color.parseColor("#00000000"));
}
}
转自
http://hi.baidu.com/%CD%F5%D5%F1%C1%D6wzl/blog/item/c0ef56b7739cfcb7d8335aef.html
分享到:
相关推荐
本文实例讲述了Android实现捕获TextView超链接的方法。分享给大家供大家参考,具体如下: 这里分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了。这个捕获TextView超链接应该算是...
同时,对于超链接的点击事件,我们可以通过`setMovementMethod(LinkMovementMethod.getInstance())`方法使TextView支持链接点击,然后设置`OnClickListener`来捕获点击事件并执行相应的操作,例如打开浏览器跳转到...
为了让超链接可点击,需要设置`MovementMethod`为`LinkMovementMethod`: ```java mTVText.setMovementMethod(LinkMovementMethod.getInstance()); ``` 2. **处理自定义标签**: 当HTML字符串包含Android默认...
在Android开发中,处理TextView中的链接点击事件是一项常见的需求,特别是当TextView显示包含超链接的文本时。Android的TTextView组件支持显示HTML格式的文本,并且可以自动识别并使URL可点击。然而,如果希望对这些...
在iOS开发中,`UILabel` 是我们常用的用来展示文本的控件,但有时我们需要实现一些高级功能,如点击文本中的某个部分(比如链接)并触发特定的事件,这时`UILabel` 的原生功能就显得有些局限。为了实现这样的效果,...
开发者可以通过注册监听器来捕获这些点击事件,然后执行打开网页、跳转页面等操作。同样,对于图片,开发者可能也需要添加点击事件,比如查看大图或者进行其他交互。 此外,这个项目可能还包括自定义渲染逻辑,以便...
在Android开发中,`Linkify`是一个非常实用的工具类,它可以帮助我们将字符串中的特定模式自动转换为可点击的超链接。例如,`Linkify`默认可以识别并处理电话号码、网址以及电子邮件地址,使它们在TextView中显示...