365bet亚洲真人网址-365双试投注-365体育平台bet下载入口

Android Edittext 手机号码格式输入设置

一. 效果图 根据需求要实现的是输入手机号码格式的数字文本,并且输入时能根据手机号码自动分隔成美观的带空格的格式,点击完成后能对手

Android Edittext 手机号码格式输入设置

一. 效果图

根据需求要实现的是输入手机号码格式的数字文本,并且输入时能根据手机号码自动分隔成美观的带空格的格式,点击完成后能对手机号码验证是否是手机号码.

二. 代码实现

我使用的是动态添加代码的方式,完整代码如下.

final EditText phonEeditText=new EditText(this);

phonEeditText.setId(Util.generateViewId());

phonEeditText.setTextColor(Color.WHITE);

phonEeditText.setTextSize(Axis.scaleTextSize(60));

UIHelper.setHint(phonEeditText,getResources().getString(R.string.input_phone_text),Axis.scaleX(20));//设置hint提示文字的大小,后面有此方法代码

phonEeditText.setHintTextColor(ContextCompat.getColor(this,R.color.white_99_color));//设置hint文字颜色

phonEeditText.setBackground(initStateListDrawable());//设置底部下划线得到焦点时高亮

phonEeditText.setBackgroundColor(Color.TRANSPARENT);

phonEeditText.setSingleLine();

phonEeditText.setInputType(EditorInfo.TYPE_CLASS_PHONE);//设置输入格式:只能输入数字

phonEeditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(13)});//设置限制长度,多了输入不了

phonEeditText.setImeOptions(EditorInfo.IME_ACTION_DONE);

//关键部分:自动分隔手机号码通过addTextChangedListener()实现

phonEeditText.addTextChangedListener(new TextWatcher() {

@Override

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override

public void onTextChanged(CharSequence charSequence, int start, int before, int count) {

if (charSequence == null || charSequence.length() == 0)

return;

StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < charSequence.length(); i++) {

if (i != 3 && i != 8 && charSequence.charAt(i) == ' ') {

continue;

} else {

stringBuilder.append(charSequence.charAt(i));

if ((stringBuilder.length() == 4 || stringBuilder.length() == 9)

&& stringBuilder.charAt(stringBuilder.length() - 1) != ' ') {

stringBuilder.insert(stringBuilder.length() - 1, ' ');

}

}

}

if (!stringBuilder.toString().equals(charSequence.toString())) {

int index = start + 1;

if (stringBuilder.charAt(start) == ' ') {

if (before == 0) {

index++;

} else {

index--;

}

} else {

if (before == 1) {

index--;

}

}

editText.setText(stringBuilder.toString());

editText.setSelection(index);

}

}

@Override

public void afterTextChanged(Editable s) {

}

});

//设置光标颜色, R.drawable.cursor里自己定义颜色

try {

Field f = TextView.class.getDeclaredField("mCursorDrawableRes");

f.setAccessible(true);

f.set(phonEeditText, R.drawable.cursor);

} catch (Exception e) {

e.printStackTrace();

}

UIHelper.setHint( ) 方法:

/**

* 设置Editetxt Hint 文字大小

* @param editText

* @param hint

* @param fontSize

*/

public static void setHint(EditText editText, String hint, int fontSize) {

SpannableString ss = new SpannableString(hint);

AbsoluteSizeSpan ass = new AbsoluteSizeSpan(fontSize, true);

ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

editText.setHint(new SpannedString(ss)); // 一定要进行转换,否则属性会消失

}

R.drawable.cursor:设置光标颜色

android:shape="rectangle" >

//颜色

//光标宽度

最后只要在父 View addView() 就能用了

RelativeLayout.LayoutParams phonEeditText_lp=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,height);

parentView.addView(phonEeditText,phonEeditText_lp);

手机号码格式验证.

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

final String phone = phonEeditText.getText().toString().trim().replace(" ", "");//去除分隔手机号中间的空格

if (phone.equals("")) {//为空

...

return;

} else if (!AppUtil.isChinaPhoneLegal(phone)) {//不符合手机号码格式

...

return;

}

...//服务器验证手机号码和密码是否正确、跳转

}

});

验证手机格式是否正确 AppUtil.isChinaPhoneLegal( ) 方法:

/**

* 是否大陆手机

* @param str

* @return

*/

public static boolean isChinaPhoneLegal(String str) {

String regExp = "^((13[0-9])|(15[^4])|(18[0,2,3,5-9])|(17[0-8])|(147))\\d{8}$";

Pattern p = Pattern.compile(regExp);

Matcher m = p.matcher(str);

return m.matches();

}

← 上一篇: 租车跑网约车一个月能赚多少
下一篇: 苹果手机访问限制如何解除?全面指南让你轻松畅享自由 →

相关推荐

战国四公子为何要供养门客,这些门客如果放在现在是什么职业?

战国四公子为何要供养门客,这些门客如果放在现在是什么职业?

在详细剖析战国四公子与门客的关系之前,我们有必要先回顾一下战国时期的历史背景。公元前770年,西周朝廷封赋周天子田禹于齐(今山东齐河

淘宝新店直通车哪个效果好?作者:小果 时间:2025-07-04 阅读:4644

淘宝新店直通车哪个效果好?作者:小果 时间:2025-07-04 阅读:4644

淘宝新店直通车开哪个效果好?直通车怎么开效果最佳? 在淘宝开店初期,选择合适的推广工具和策略对提升店铺流量、销量至关重要。本文将

支付宝芝麻申卡能申请哪些信用卡?

支付宝芝麻申卡能申请哪些信用卡?

厉害了,WORD支付宝!支付宝芝麻分能申请信用卡啦!在这里,芝麻分相当于“申卡、用卡”通行证,可以实现快速填写、快速绑卡、轻松查询等

二十大闭幕:习近平进一步扩权,温和派退出领导层

二十大闭幕:习近平进一步扩权,温和派退出领导层

储百亮(Chris Buckley)是《纽约时报》首席中国记者。他成长于澳大利亚悉尼,在过去30年中的大部分时间内居住在中国。在2012年加入《纽约时报》

螃蟹用高压锅要蒸多长时间能熟?怎样的螃蟹才好?

螃蟹用高压锅要蒸多长时间能熟?怎样的螃蟹才好?

螃蟹用高压锅要蒸多长时间能熟?众所周知螃蟹是蕴含了大量的蛋白质,味道也极其鲜美,蕴含了很多维生素a,它和龙虾、寄居蟹都是同类动物

《镇魔曲》手游体验报告

《镇魔曲》手游体验报告

基本信息 游戏名称:《镇魔曲》手游 游戏类型:MMORPG 游戏标签:MOBA“双摇杆”、角色扮演、副本、对战、社交 游戏平台:安卓 发行渠道:华