EditText设置只能输入整数金额
来源:互联网 发布:网络安全检查通报 编辑:程序博客网 时间:2024/06/06 04:09
1.设置类型为数字
<EditText android:id="@+id/input_edit" android:layout_width="36dp" android:layout_height="wrap_content" android:background="@null" android:focusable="true" android:gravity="center" android:hint="0" android:numeric="integer" android:singleLine="true" />
2.输入内容过滤
EditText input_edit= (EditText) findViewById(R.id.input_edit);InputFilter[] filters = {new CashierInputFilter()}; input_edit.setFilters(filters);
3.过滤的条件:
输入的只能是整数,最大值为200
public class CashierInputFilter implements InputFilter { Pattern mPattern; //输入的最大金额 private static final int MAX_VALUE = 200; //小数点后的位数 private static final int POINTER_LENGTH = 0; private static final String POINTER = "."; private static final String ZERO = "0"; public CashierInputFilter() { mPattern = Pattern.compile("([0-9]|\\.)*"); } /** * @param source 新输入的字符串 * @param start 新输入的字符串起始下标,一般为0 * @param end 新输入的字符串终点下标,一般为source长度-1 * @param dest 输入之前文本框内容 * @param dstart 原内容起始坐标,一般为0 * @param dend 原内容终点坐标,一般为dest长度-1 * @return 输入内容 */ @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { String sourceText = source.toString(); String destText = dest.toString(); //验证删除等按键 if (TextUtils.isEmpty(sourceText)) { return ""; } Matcher matcher = mPattern.matcher(source); //已经输入小数点的情况下,只能输入数字 if (destText.contains(POINTER)) { if (!matcher.matches()) { return ""; } else { if (POINTER.equals(source)) { //只能输入一个小数点 return ""; } } //验证小数点精度,保证小数点后只能输入2位 int index = destText.indexOf(POINTER); int length = dend - index; if (length > POINTER_LENGTH) { return dest.subSequence(dstart, dend); } } else { //没有输入小数点的情况下,只能输入小数点和数字,但首位不能输入小数点和0 if (!matcher.matches()) { return ""; } else { if ((POINTER.equals(source)) && TextUtils.isEmpty(destText)) { return ""; } //如果首位为“0”,则只能再输“.” if (ZERO.equals(destText)) { if (!POINTER.equals(sourceText)) { return ""; } } } } //验证输入金额的大小 double sumText = Double.parseDouble(destText + sourceText); if (sumText > MAX_VALUE) { ToastUtil.toast("最多200个"); return dest.subSequence(dstart, dend); } return dest.subSequence(dstart, dend) + sourceText; }}
阅读全文
1 0
- EditText设置只能输入整数金额
- android EditText设置只能输入金额
- Android edittext设置只能输入整数
- 设置EditText输入金额
- 限制EditText只能输入整数
- EditText限制只能输入整数
- 新手学习:设置EditText只能输入数字
- 设置EditText只能输入数字和字母
- 设置EditText只能输入字母和数字
- EditText设置输入的类型,只能输入纯数字,只能输入手机号码,只能输入邮箱等等。
- Android EditText输入金额
- EditText输入金额格式
- JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)
- JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)
- EditText只能输入汉字
- Silverlight TextBox只能输入金额
- 如何设置EditText,使得只能输入数字或者某些字母
- EditText设置弹出数字键盘,并且只能输入数字和.
- C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)
- CasePlayer2
- Apache监听其他端口方法
- 用户'sa'登录失败(错误18456)解决方案图解----本人备注
- 二进制日志恢复数据库数据
- EditText设置只能输入整数金额
- Orcal数据库中ORA-01861: 文字与格式字符串不匹配
- html5不能播放视频的方法
- 聊聊分布式事务,再说说解决方案
- Sangmado 公共基础类库
- 原生AJAX
- UVA1628 送匹萨 [有关未来费用的区间dp (伪)升级版]
- windows上php7环境搭建
- 行走方案问题(动态规划实现)