edittext 在输入价格时限定输入的位数不大于1000000且可以输入两位小数,第一位不能输入.

本文介绍了一个用于限制Android应用中EditText控件输入格式的方法。该方法能够控制用户输入的小数点位置,并确保整体输入长度不超过特定限制,适用于需要精确控制用户输入场景的应用开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void afterTextChanged(Editable s) {
    String temp = s.toString();
    int posDot = temp.indexOf(".");//返回指定字符在此字符串中第一次出现处的索引
    if (posDot <= 0) {//不包含小数点

        if (temp.length() <= 6 ) {
            if(!temp.substring(0).equals(".")){
                if(temp.length() > 1){
                    if(temp.substring(0).equals("0")){
                        if(!temp.substring(1).equals("0")){
                            return;
                        }else {
                            s.delete(0,1);
                        }
                        return;//小于五位数直接返回
                    }else {
                        return;
                    }
                }else {
                    return;
                }
            }else {
                s.delete(0,1);
            }
        } else {
            if(!temp.substring(0).equals(".")){
                s.delete(6, 7);//大于五位数就删掉第六位(只会保留五位)
            }else {
                s.delete(0,1);
            }
            return;
        }
    }
    if (temp.length() - posDot - 1 > 2)//如果包含小数点
    {
        s.delete(posDot + 3, posDot + 4);//删除小数点后的第三位
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值