关于EditText的输入数字校验的问题
2016-05-10 16:29
274 查看
一.简述需求
1.需求是输入数字是删除第一位数字后位是0的禁止删除(如支付宝)
2.需求是可以删除任何位置的数字。如果删除第一位后面是0,就去掉无效的0
二.具体的实际例子如:
1010需求1来做:删除第一位是禁止删除
1010需求2来做:删除第一位变成10
三.下面具体上代码
方式一
以上基本是两种效果,如有问题欢迎指教
1.需求是输入数字是删除第一位数字后位是0的禁止删除(如支付宝)
2.需求是可以删除任何位置的数字。如果删除第一位后面是0,就去掉无效的0
二.具体的实际例子如:
1010需求1来做:删除第一位是禁止删除
1010需求2来做:删除第一位变成10
三.下面具体上代码
方式一
private void subEditTextString(final EditText et) { if (et != null) { et.addTextChangedListener(new TextWatcher() { String str2 = ""; public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { str2 = et.getText().toString(); } @Override public void afterTextChanged(Editable s) { String sss = et.getText().toString(); if ("".equals(sss)) { // et.setText(""); return; } else { char c = sss.charAt(0); if ("0".equals(c + "")) { et.setText(str2); et.setSelection(str2.length() + 1); } } } }); } }方式二
private void subEditTextString(final EditText et) { if (et != null) { et.addTextChangedListener(new TextWatcher() { Arraylist<String> list; public void onTextChanged(CharSequence s, int start, int before, int count) { String str = et.getText().toString(); Pattern p = Pattern.compile("[1-9]\\d*"); Matcher m = p.matcher(str); list = new ArrayList<String>(); while (m.find()) { list.add(m.group(0)); } if (list.size()>0) { System.out.println(list.size() + list.get(0)); et.removeTextChangedListener(this); et.setText(list.get(0)); et.addTextChangedListener(this); }else{ et.removeTextChangedListener(this); et.setText(""); et.addTextChangedListener(this); } et_charge_money.setSelection(et.getText().toString().length()) } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }); } }
以上基本是两种效果,如有问题欢迎指教
相关文章推荐
- Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题
- Android2.3实现Android4.0风格EditText的方法
- Android中EditText+Button组合导致输入板无法收起的原因分析及解决办法
- Android GridView中包含EditText的焦点重新获取方法
- Android编程开发之EditText中不输入特定字符会显示相关提示信息的方法
- 解决EditText、ListView以及GridView同时使用,输入法自动跳出来的方法
- Android如何自定义EditText下划线?
- Android编程开发之EditText中inputType属性小结
- android同时控制EditText输入字符个数和禁止特殊字符输入的方法
- Android实现EditText控件禁止输入内容的方法(附测试demo)
- Android中EditText实现不可编辑解决办法
- Android编程实现在自定义对话框中获取EditText中数据的方法
- Android中EditText如何去除边框添加下划线
- Android中EditText光标在4.0中的bug及解决方法
- Android实现EditText中添加和删除bitmap的方法
- Android编程实现监听EditText变化的方法
- Android文本输入框(EditText)输入密码时显示与隐藏
- Android编程中EditText限制文字输入的方法
- Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)
- android基础教程之android的listview与edittext冲突解决方法