您的位置:首页 > 其它

安卓中文字高亮 且有点击事件

2015-07-31 09:50 183 查看
项目中遇到了这样一个需要 一个textview中的文字 一部分文字既要有颜色 又要有点击事件 操 当时就头疼 然后各种百度 但是百度上都是给了一半 给了一半已经不错了 剩下的一半自己琢磨

开始上代码 首先写类 继承clickablespan

class Clickable extends ClickableSpan{

View.OnClickListener listener;

public Clickable(View.OnClickListener l){

listener=l;

}

@Override

public void onClick(View widget) {

listener.onClick(widget);

}

}

这个类将会作为下面的参数 setSpan中的第一个参数 当然我们应该开到了构造韩硕中的l 他是一个OnclickListtener对象 你可以自己写个子类传进去 里面处理自己的点击事件 这个是设置点击事件 下面的就是设置颜色了 你可从从哪个位置到哪个位置是哪种验证 很灵活

SpannableString spanableInfo=new SpannableString(mNoticeContent+"发送语音验证码");

int start=mNoticeContent.length();

int end=spanableInfo.length();

spanableInfo.setSpan(new Clickable(l), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);

spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#7f7f7f")),0,start,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

spanableInfo.setSpan(new ForegroundColorSpan(Color.parseColor("#1ab99b")),start,end,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

但是仅仅上面的还是不够的应为 你个textview默认是没有点击事件的 你必须设置clickable为true

就是这个样子

mRegisterNotReceiveCodeContent.setText(spanableInfo);

mRegisterNotReceiveCodeContent.setClickable(true);

mRegisterNotReceiveCodeContent.setMovementMethod(LinkMovementMethod.getInstance());

下面的参数设置一个也不能少 就这样 既有点击事件又有颜色 完美解决希望帮助到一部分朋友


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: