Android实现TextView中部分文字监听事件
来源:互联网 发布:淘宝优质网店 编辑:程序博客网 时间:2024/05/12 03:40
通常我们只需要用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);
}
}
当然还有其它的方法啦!
0 0
- Android实现TextView中部分文字监听事件
- Android中TextView中部分文字有不同颜色的实现
- Android中TextView中部分文字有不同颜色的实现
- Android中TextView中部分文字有不同颜色的实现
- Android中TextView中部分文字有不同颜色的实现
- Android中TextView中部分文字有不同颜色的实现
- Android TextView中部分文字高亮,且可响应点击事件
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- Android利用SpannableStringBuilder设置TextView中部分文字的颜色...
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- Android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- mysql 学习笔记
- People in Computer Vision
- Apple 80211 - 28 Days Later (a.k.a 11201ellpA, Part II)
- 元图地图开放平台体系架构
- 使用Accept的完成端口
- Android实现TextView中部分文字监听事件
- QT 标题栏隐藏可拖拽
- gcc 源码分析-前端篇1
- android 官网访问地址
- ConcurrentHashMap的rehash过程
- IIC设备驱动程序
- 元图地图开放平台事件机制
- websocket
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习