android字符串点击事件,Android 字符串中选出手机号变色加点击事件去除下划线

该博客介绍了如何在Java中实现手机号的截取方法,以及如何改变手机号的颜色并添加点击事件。首先,通过正则表达式匹配手机号,并进行截取。接着,使用SpannableString和ClickableSpan来设置手机号文本的颜色变化和点击事件,使得点击手机号时能够触发特定的处理函数。
摘要由CSDN通过智能技术生成

eab67736b33cdc20dd69a0f5ee7b966d.png

1.字符串截取手机号方法

public String getPhone(String sParam) {

if (sParam.length() <= 0)

return "";

Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*");

Matcher matcher = pattern.matcher(sParam);

StringBuffer bf = new StringBuffer();

while (matcher.find()) {

bf.append(matcher.group()).append(",");

}

int len = bf.length();

if (len > 0) {

bf.deleteCharAt(len - 1);

}

return bf.toString();

}

2.改变手机号颜色并添加点击事件

private TextView mContactNone;

public void showRequestFailInviteRecord(String desc, String str) {

mContactNone = findViewById(R.id.mContactNone);

//创建 SpannableString 对象

SpannableString mStyledText = new SpannableString(desc);

// mStyledText.setSpan(new ForegroundColorSpan(Color.BLUE), 7, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Pattern mPattern = Pattern.compile(str);

Matcher mMatcher = mPattern.matcher(desc);

while (mMatcher.find()) {

ClickableSpan what = new ClickableSpan() {

@Override

public void onClick(View view) {

//这里的代码是对按钮点击事件的处理。。。。。。

Toast.makeText(MainActivity.this, "点击了", Toast.LENGTH_SHORT).show();

}

@Override

public void updateDrawState(TextPaint ds) {

super.updateDrawState(ds);

ds.setUnderlineText(false);//去掉下划线

ds.setColor(getResources().getColor(R.color.colorPrimary));//设置字体颜色

}

};

mStyledText.setSpan(what, mMatcher.start(), mMatcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

mContactNone.setText(mStyledText);

mContactNone.setMovementMethod(LinkMovementMethod.getInstance());

mContactNone.setHighlightColor(getResources().getColor(android.R.color.transparent));

}

}

3.调用方法

String string = "截取手机号13691032316变色加点击事件";

showRequestFailInviteRecord(string, getPhone(string));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值