Android(安卓)EditText限制输入两位小数
16lz
2021-01-24
一、概述
发现输出产品价格的时候不能简单的设置android:inputType为number或者numberDecimal,因为这样不能输入小数或者小数位能够输入多个,这样不符合实际生活需求,所以只能限制输入两位。
二、实现
主要是借助addTextChangedListener进行监听输入文本框的内容,声明一个textWatcher来执行监听,
前提是设置文本输入类型为: android:inputType="numberDecimal"
.... txt_productPrice.addTextChangedListener(textWatcher); ....private TextWatcher textWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { String editStr = editable.toString().trim(); int posDot = editStr.indexOf("."); //不允许输入3位小数,超过三位就删掉 if (posDot < 0) { return; } if (editStr.length() - posDot - 1 > 2) { editable.delete(posDot + 3, posDot + 4); } else { //TODO...这里写逻辑 } } };
一般存储和使用时候借助
DecimalFormat df = new DecimalFormat("0.00");df.format(doubleData)
参考文章
更多相关文章
- Android(安卓)金钱计算BigDecimal 的使用
- Android打造炫酷进度条效果
- Android实训案例(一)——计算器的运算逻辑
- android 从EditText中获取内容
- android 经纬度 double类型 转换成 度分秒
- Android设置EditText只接受数字输入
- android 除法运算保留小数点
- android面试题一
- android EditText限制输入框小数位数