通常我们只需要用TextView来显示文本信息,展示给用户看,而把点击相应的监听事件交给Button等控件来处理,当然TextView也可以实现点击事件。有时候我们要对TextView中的部分文字进行点击,我们应该如何操作呢?一般有以下三种方式:

1,在布局文件中设置TextView的android:autoLink属性,比如设置android:autoLink=“phone”,则可以点击手机号码直接拨打电话。android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) 等。这个最简单,但实现的目标也比较单一,比如只可以打电话或发邮件等。

2,用Html格式中的href链,比如:

String content= "<font color=#ff0000> 点击对应文字可以跳转网页面"+ "</font><a href='http://www.baidu.com'>百度</a>"; TextView linkTextView= (TextView) findViewById(R.id.linkTextView); textView.setText(Html.fromHtml(content));

点击上面的百度二字就可以直接 跳转到百度网页。这种方式一般只能跳转到网页面面。

3,当我们想实现点击部分文字跳转到指定的页面或是实现特定的效果(比如弹出提示对话框,Toast信息等)我们可以使用SpannableString来实现:

TextView textView=(TextView)findViewById(R.id.tv);

SpannableString spanStr = new SpannableString(textView.getText().toString()); NoUnderlineSpan mNoUnderlineSpan = new NoUnderlineSpan();//这句话的目的是去除特殊文字下划线效果 spanStr.setSpan(new ForegroundColorSpan(Color.parseColor("#00b5f0")), s.length() - 7, s.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//设置部分文字文字颜色,这里的文字长度肯定大于7才行 s.setSpan(new ClickableSpan() {
@Override public void onClick(View widget) { //这里就是点击事件,实现自己想要的效果 } }, spanStr.length() - 7, s.length(), Spanned.SPAN_MARK_MARK); spanStr.setSpan(mNoUnderlineSpan, spanStr.length() - 7, spanStr.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); textView.setText(spanStr); textView.setMovementMethod(LinkMovementMethod.getInstance());

实现清除文字下划线:

public class NoUnderlineSpan extends UnderlineSpan {
@Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); } }

当然还有其它的方法啦!

更多相关文章

  1. react-native的兼容性(Android、Ios)
  2. Android开发中TextView文本过长滚动显示实现方法分析
  3. 超简单的几行代码搞定Android底部导航栏功能
  4. MPAndroidChart项目实战(八)——自定义分段堆积柱状图
  5. Android中的文本替换
  6. 让Android的输入框与文本框带滚动条ScrollView
  7. 如何限制textview显示文字的个数
  8. Android(安卓)Android(安卓)studio 3.X配置androidannotations,不
  9. 如何在EditText中显示提示文字

随机推荐

  1. Android(安卓)如何使Android应用程序获取
  2. 详解android:scaleType属性
  3. Android(安卓)Lottie动画的简单使用
  4. Android知识梳理之自定义View
  5. 【Android】Macbook Pro 10.14(macOS Moja
  6. Cocos2d-x NDK ANDROID VS2010
  7. android如何配置基本环境
  8. Android(安卓)开发简介-系统架构
  9. android和ios之争(开发者该怎样选择?)
  10. Android(安卓)ListView,GridView,ScrollV