聊天TextView中识别数字网址高亮并可点击

原创 2015年11月19日 11:05:52

怎么让聊天会话页面的内容中数字和网址高亮并可点击?但是在编辑状态下不可点击?

在编辑状态下链接变为不可点击。即点item选中CheckBox而不是跳转链接或拨打电话

第一步:

TextView设置属性
android:autoLink="all"//匹配包括none, web, email, phone, map, all
android:linksClickable="true"
就可以高亮电话号网址等。。并可点击进行跳转

第二步:

怎么在编辑状态下使其不可点击
                if (INTERFACE_CODE == INTERFACE_CODE_EDIT){
                    mHolder.tvReceiveBody.setLinksClickable(false);
                }else{
                    mHolder.tvSendBody.setLinksClickable(true);
                }
                mHolder.tvSendBody.setText(body);

通过上面的mHolder.tvReceiveBody.setLinksClickable(false)不好使,在编辑状态下仍然可点击跳转

第三步:

通过查找相关stackoverflow,如下
http://stackoverflow.com/questions/2734270/how-do-i-make-links-in-a-textview-clickable
看到一个解决办法textview.setMovementMethod(LinkMovementMethod.getInstance());

差不多了,回到编译环境看看setMovementMethod方法的注释说明

setMovementMethod方法的注释说明

发现setMovementMethod就是移动跳转的一个方法,参数就是跳转的具体实现,可以为空就不跳转了。SO问题解决:
上面的代码片加一个 mHolder.tvSendBody.setMovementMethod(null);就哦了。如下:



    if (INTERFACE_CODE == INTERFACE_CODE_EDIT){
                    mHolder.tvSendBody.setLinksClickable(false);
                    mHolder.tvSendBody.setMovementMethod(null);
                }else{
                    mHolder.tvSendBody.setLinksClickable(true);
                    mHolder.tvSendBody.setMovementMethod(LinkMovementMethod.getInstance());

                }
                mHolder.tvSendBody.setText(body);

但是setLinksClickable(false);和setMovementMethod(null);二者缺一不可

Android TextView 设置超链接、关键字高亮等效果

之前做TextView关键字高亮效果,使用的是Html.fromHtml(String source)方法,然后通过TextView的setText(CharSequence text)方法来显示 ...
  • FX_SKY
  • FX_SKY
  • 2014年01月03日 15:12
  • 4824

TextView如何高亮显示文本

TextView tv = (TextView)findViewById(R.id.TextView01); tv.setText( "Tom&Jerry" , TextView.BufferTyp...
  • sunrock
  • sunrock
  • 2010年04月19日 15:02
  • 4132

给textView添加url、电话号码、邮箱点击效果

_textView = [[UITextView alloc] initWithFrame:CGRectMake(100, _myView.bottom, 190, 100)]; _textV...
  • gaoyuqiang30
  • gaoyuqiang30
  • 2016年01月05日 10:55
  • 599

android---TextView中电话号码、网址自动链接的实现方法

出自:http://www.cnblogs.com/jico/archive/2010/11/02/1867437.html 假若TextView文本中有电话号码或者网址,我想通过点击电话号...
  • CVSDN
  • CVSDN
  • 2016年03月04日 14:54
  • 2224

android textview 中url识别

android5.0+中对textview中的url识别可能不会是自己想要的结果。例如它会将1.###识别为url。可能它的本意是对baidu.com支持,导致一些我们不能接受的结果。 没有好的办法...
  • Helius_Sun
  • Helius_Sun
  • 2015年09月10日 20:23
  • 4509

TextView 部分文字高亮、点击、添加超链接、替换字体、富文本、图片替换文字等实现

在项目中,经常会遇到部分文字做高亮点击处理,或者做成富文本,或者添加超链接等处理,一般简单的我们可以用 Html.fromHtml()来处理,然而一些复杂的要求,用 Html.fromHtml()来实...
  • liyi1009365545
  • liyi1009365545
  • 2017年08月17日 15:51
  • 178

【Android 】TextView 局部文字变色

TextView 对于富文本效果的实现支持不支持呢?比如“局部文字颜色的变动”,“局部字体的变动” 一、需求效果二、解决方案针对这类问题,Android提供了 SpannableStringBuild...
  • Double2hao
  • Double2hao
  • 2016年11月07日 14:32
  • 2151

Android TextView中部分文字高亮,且可响应点击事件

如果只是单纯的想让TextView中部分文字高亮显示,下面两个方法就行了: /**      * 关键字高亮变色      *       * @param color      *  ...
  • lwk520136
  • lwk520136
  • 2016年02月28日 15:04
  • 432

Android TextView 高亮字体并添加点击事件

运行效果       package com.zutil.lib; import android.graphics.Typeface; import android.os.Bund...
  • zhaoyanjun6
  • zhaoyanjun6
  • 2017年05月16日 14:43
  • 309

android textView添加不同颜色的边框

(一个群里的兄弟问的,) android给textview 添加边框 可以使用shape  这个只能添加同一种 需要组合的形式 实现如下小果盘 1,使用 layer_list 进行 做个组合 使用...
  • u014510302
  • u014510302
  • 2016年02月17日 12:30
  • 2639
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:聊天TextView中识别数字网址高亮并可点击
举报原因:
原因补充:

(最多只允许输入30个字)