Android使用TextView实现无下划线超链接的方法

本文实例讲述了Android使用TextView实现无下划线超链接的方法。分享给大家供大家参考,具体如下:

Android系统默认把网址、电话、地图(geo地址)、邮箱等转换为超链接。
具体请查看 android:TextView简单设置文本样式和超链接的方法

和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线:

1、重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接)

//无下划线超链接,使用textColorLink、textColorHighlight分别修改超链接前景色和按下时的颜色
private class NoLineClickSpan extends ClickableSpan {
  String text;
  public NoLineClickSpan(String text) {
    super();
    this.text = text;
  }
  @Override
  public void updateDrawState(TextPaint ds) {
    ds.setColor(ds.linkColor);
    ds.setUnderlineText(false); //去掉下划线
  }
  @Override
  public void onClick(View widget) {
    processHyperLinkClick(text); //点击超链接时调用
  }
}

2、把超链接文本封装为NoLineClickSpan对象,并添加到TextView中

TextView tv = findViewById(R.id.tv_click);
SpannableString spStr = new SpannableString("我们-->http://www.jb51.net");
ClickSpan clickSpan = new NoLineClickSpan(vo); //设置超链接
spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv.append(spStr);
tv.setMovementMethod(LinkMovementMethod.getInstance());

PS:不用把TextView的属性autoLink设为”all”.

3、设置超链接为可点击状态

tv.setMovementMethod(LinkMovementMethod.getInstance());

PS:在NoLineClickSpan类中实现onClick()回调方法.

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android TextView中文本点击文字跳转 (代码简单)

    在web页面中,有a标签的超链接实现跳转,同样在Android当中,用TextView控件来显示文字,实现它的事件来跳转. 用过微博Android手机端的朋友的都知道微博正文有时有一些高亮显示的文本,如话题.提到的人等等,当点击这些文本时会跳到另外一个页面(即另一个activity),下面就要来模仿微博的这个功能 点击#hello# 点击@人 一.新建一个名为WeiboContentTest的工程 二.在布局文件中添加一个textview 三.在mainactivity中创建该textview

  • Android中Textview超链接实现方式

    TextView中的超链接可以通过几种方式实现: 一.Html.fromHtml方式 TextView,本身就支持部分的Html格式标签.这其中包括常用的字体大小颜色设置,文本链接等.使用起来也比较方便,只需要使用Html类转换一下即可: textView.setText(Html.fromHtml(str)); 代码如下: public class Test10Activity extends Activity { TextView textView ; @Override protected

  • Android使用内置WebView打开TextView超链接的实现方法

    需求原因 最近工作中遇到一个需求,后来通过查找相关的资料终于解决了,索性记录下来分享给大家,需要的朋友们可以参考学习. 该需求如下: **产品说,我们要实现问答功能,答案内的链接要使用内置的浏览器打开. **视觉说,我们要给超链接标上我们自己的颜色. 如图: 下面我们分析下如何实现. 使用Html 常规方法,给定一段标准html文档,使用Html.fromHtml()封装,直接使用TextView显示. TextView textView = (TextView) findViewById(R.

  • Android中TextView自动识别url且实现点击跳转

    前言 在项目中要在展示展示的文字中,自动匹配url 并且点击实现跳转,看了很多第三方的感觉都很复杂.后来自己写了一个简单的. 实现代码如下 1.创建一个继承UITextView的CjTextView . import <UIKit/UIKit.h> @interface CjTextView : UITextView @end import "CjTextView.h" @interface CjTextView () @property (nonatomic, copy

  • android:TextView简单设置文本样式和超链接的方法

    本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

  • Android TextView添加超链接的方法示例

    本文实例讲述了Android TextView添加超链接的方法.分享给大家供大家参考,具体如下: public class Link extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.link); // text1 shows the android:autoLin

  • textView 添加超链接(两种实现方式)

    在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接. 代码如下: 第一种 复制代码 代码如下: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout =

  • Android实现捕获TextView超链接的方法

    本文实例讲述了Android实现捕获TextView超链接的方法.分享给大家供大家参考,具体如下: 这里分享一篇捕获TextView超链接的文章,希望对大家有所帮助,我终于在歪路上回归正途了.这个捕获TextView超链接应该算是比较常用吧,如果你会了,就不用看了,如果还不会,可以看一眼,非常简单. 捕获TextView超链接这个意思就是在一段文字当中如果有超链接的网址在当中,在TextView中会特别显示,和其它文字颜色不一样,还可以点击执行相应的操作. 效果图如下: 具体代码如下: tv =

  • Android使用TextView实现无下划线超链接的方法

    本文实例讲述了Android使用TextView实现无下划线超链接的方法.分享给大家供大家参考,具体如下: Android系统默认把网址.电话.地图(geo地址).邮箱等转换为超链接. 具体请查看 android:TextView简单设置文本样式和超链接的方法 和HTML中的一样,默认超链接都带下划线的,下面的方案可以在TextView中去掉超链接的下划线: 1.重写ClickableSpan类来去掉下划线样式(系统默认使用ClickableSpan来封装超链接) //无下划线超链接,使用tex

  • Android TextView控件文字添加下划线的实现方法

    如下所示: TextView tv = (TextView) findViewById(R.id.text); tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tv.setText("添加下划线"); 以上就是小编为大家带来的Android TextView控件文字添加下划线的实现方法的全部内容了,希望对大家有所帮助,多多支持我们~

  • Android自定义TextView实现文字图片居中显示的方法

    最近有个需求是这样的,人民币的符号"¥"因为安卓手机系统的不一致导致符号不是完全一样,所以用美工的给的图片代替,考虑到用的地方比较多,所以想着写一个继承于线性布局的组合控件,后来一想,安卓中不是有TextView吗,这个自带图片的控件,后来写了个demo,因为我是用的MatchParent,导致问题出现,人民币符号不是和文字一样的居中,因此才有了这篇博文,让我们来自定义TextView吧,这个场景用的比较多. 分析下TextView的源码 我们先来分析下TextView的源码,因为Te

  • Android使用TextView,设置onClick属性无效的解决方法

    Android在布局文件中为View提供了onClick属性,使用方法如下: <TextView android:id="@+id/user" android:layout_width="@dimen/px_171" android:layout_height="fill_parent" android:onClick="iconClickListener" android:clickable="true&qu

  • Android给TextView添加点击事件的实现方法

    首先设定TextView的clickable属性为true. 可以在布局文件中进行设定,比如: <TextView android:id="@+id/phone" android:clickable="true" --------->设定此属性 android:layout_marginLeft="10dp" android:layout_below="@id/address" android:layout_toR

  • Oracle使用like查询时对下划线的处理方法

    如:查询ZJ_STANDARD_ITEM表的name1字段包含"_("的数据 --以下的查询语句执行会发现所查询的数据并不是我们想要数据 select * from ZJ_STANDARD_ITEM t where t.name1 like '%_(%'; 原因分析 下划线"_"在oracle中不是单纯的表示下划线的意思,而是表示匹配单一任何字符! 如以上查询语句就表示"("左边只要有任意字符都会被查询到 [解决办法] 使用 escape() 函

  • Android 中TextView中跑马灯效果的实现方法

     条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须超出TextView大小 3.TextView要获得焦点才能滚动 mTVText.setText("超过文本长度的数据"); mTVText.setSingleLine(true);设置单行显示 mTVText.setEllipsize(TruncateAt.MARQUEE);设置跑马灯显示效果 TextView.setHorizontallyScrol

  • Android TextView使用SpannableString设置复合文本的方法详解

    本文实例讲述了Android TextView使用SpannableString设置复合文本的方法.分享给大家供大家参考,具体如下: TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.BackgroundColorSpan 背景色 2.ClickableSpan 文本可点击,有点击事件 3.ForegroundColorSpan 文本颜色(前景色) 4.

  • Android如何自定义EditText下划线?

    曾经做过一个项目,其中登录界面的交互令人印象深刻.交互设计师给出了一个非常作的设计,要求做出包含根据情况可变色的下划线,左侧有可变图标,右侧有可变删除标志的输入框,如图 记录制作过程: 第一版本 public class LineEditText extends EditText { private Paint mPaint; private int color; public static final int STATUS_FOCUSED = 1; public static final in

  • 用CSS实现链接的虚线下划线效果

    修改您的样式表,找下边这段(一般都在开头) a { color:#3399FF; font-weight:Normal; /*字体效果 普通 可以改成bold粗体*/ text-decoration:none; /*下划线效果:无下划线*/ } a:hover { color:#4499EE; text-decoration:none; /*下划线效果:无下划线*/ border-bottom: 1px #0099CC dotted /*加一个只有下边的框 边框为虚线*/ } a{}控制连接的效

随机推荐