EditText限制输入内容为1-100范围内的数字
2018-03-16 17:06
811 查看
首先在布局文件中,设置inputType为number,且maxLength=3;然后设置监听输入,代码如下
public TextWatcher inputWatch(final EditText input) { return new TextWatcher() { private String outStr = ""; //这个值存储输入超过两位数时候显示的内容 @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { String edit=s.toString(); if (edit.length()==2&&Integer.parseInt(edit)>=10){ outStr=edit; } } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String words = s.toString(); //首先内容进行非空判断,空内容(""和null)不处理 if (!TextUtils.isEmpty(words)) { //1-100的正则验证 Pattern p = Pattern.compile("^(100|[1-9]\\d|\\d)$"); Matcher m = p.matcher(words); if (m.find() || ("").equals(words)) { //这个时候输入的是合法范围内的值 } else { if (words.length() > 2) { //若输入不合规,且长度超过2位,继续输入只显示之前存储的outStr input.setText(outStr); //重置输入框内容后默认光标位置会回到索引0的地方,要改变光标位置 input.setSelection(2); } ToastUtil.showToast("请输入范围在1-100之间的整数"); } } } @Override public void afterTextChanged(Editable s) { //这里的处理是不让输入0开头的值 String words = s.toString(); //首先内容进行非空判断,空内容(""和null)不处理 if (!TextUtils.isEmpty(words)) { if (Integer.parseInt(s.toString()) <= 0) { input.setText(""); ToastUtil.showToast("请输入范围在1-100之间的整数"); } } } }; }
相关文章推荐
- android EditText 对输入字数和内容范围进行限制
- EditText添加输入数字范围限制
- EditText输入内容限制不以数字0开头
- EditText限制输入数字范围
- android EditText输入限制,只输入数字电话或者特殊字符
- EditText限制 只能输入0.00 -100保留两位小数
- EditText 限制只能输入字母和数字,并且字母自动大写
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- 答题框:EditText输入长度、输入内容的限制。
- 关于EditText输入数字时候限制为一个亿的问题,且保留小数点两位小数
- Android EditText 限制输入数字和字母设置
- 限制editText控件输入范围
- android EditText输入限制,只输入数字电话或者特殊字符
- EditText限制只能输入数字的属性
- EditText限制输入数字与英文默认弹出数字键盘
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- Edittext限制输入汉字50英文100
- Android TextWatcher监控EditText中的输入内容并限制其输入字符
- 限制 Text Field 输入的内容类型:只允许输入数字