Android studio

貓ʚɞ 2020-07-21 04:40:52
怎么样在点击修改按钮时,限制手机号码只能为11位啊要是方便的话能不能给下代码,谢谢
...全文
15896 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
JMchen123 2020-11-27
  • 打赏
  • 举报
回复

自动分隔手机号码通过addTextChangedListener()实现
        etPhone.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--;
                        }
                    }
                    etPhone.setText(stringBuilder.toString());
                    etPhone.setSelection(index);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });
简单吗 2020-11-10
  • 打赏
  • 举报
回复
public final static String PHONE_PATTERN = "^((1[0-9][0-9]))\\d{8}$"; /** * 正则表达式匹配判断 * @param * @param input 需要做匹配操作的字符串 * @return true if matched, else false */ public static boolean isPhoneNumber( CharSequence input) { Pattern pattern = Pattern.compile(PHONE_PATTERN); Matcher matcher = pattern.matcher(input); if (matcher.find()) { return true; } return false; } 通过此方法 判断输入内容是否为手机号
貓ʚɞ 2020-07-23
  • 打赏
  • 举报
回复
引用 8 楼 Micraow Peng的回复:
[quote=引用 6 楼 貓ʚɞ的回复:][quote=引用 5 楼 Micraow Peng的回复:]if ... != ...: ...... ...... ......
不太懂能不能详细点[/quote] 我也不大懂,我觉得应该是这个逻辑,if 手机号长度(要用到length) != (那个是不等于的意思)11: 以后你要输出什么就在就在这了。[/quote] 好吧,谢谢你啦
Micraow Peng 2020-07-23
  • 打赏
  • 举报
回复
引用 6 楼 貓ʚɞ的回复:
[quote=引用 5 楼 Micraow Peng的回复:]if ... != ...: ...... ...... ......
不太懂能不能详细点[/quote] 我也不大懂,我觉得应该是这个逻辑,if 手机号长度(要用到length) != (那个是不等于的意思)11: 以后你要输出什么就在就在这了。
forward_huan 2020-07-23
  • 打赏
  • 举报
回复
使用正则表达式判断 /^\d{11}$/
貓ʚɞ 2020-07-22
  • 打赏
  • 举报
回复
引用 5 楼 Micraow Peng的回复:
if ... != ...: ...... ...... ......
不太懂能不能详细点
Micraow Peng 2020-07-22
  • 打赏
  • 举报
回复
if ... != ...: ...... ...... ......
貓ʚɞ 2020-07-21
  • 打赏
  • 举报
回复
这个好像是最大位数,能不能 只能是11位才能修改成功
貓ʚɞ 2020-07-21
  • 打赏
  • 举报
回复
引用 1 楼 好一个阿毛的回复:
editText.getText 的length
这个好像是最大位数,能不能 只能是11位才能修改成功
好一个阿毛 2020-07-21
  • 打赏
  • 举报
回复
editText.getText 的length

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧