监听EditText,跟随输入文字而变化,double类型取余小数点后两位

来源:互联网 发布:工程预算软件大全 编辑:程序博客网 时间:2024/06/05 21:18
moneyEt.addTextChangedListener(new TextWatcher() {    @Override    public void beforeTextChanged(CharSequence s, int start, int count, int after) {//输入前        money = s.toString().trim();        if (!TextUtils.isEmpty(money)&&!TextUtils.isEmpty(poundage)){            double i =Double.parseDouble(money);            double j = Double.parseDouble(poundage);            tixianTv.setText("提现金额为0.00" + money + "元" + "(含0.00" + "手续费" + ")");        }    }    @Override    public void onTextChanged(CharSequence s, int start, int before, int count) {//输入的变化        Log.e("message==","onTextChanged");        money = s.toString().trim();        if (!TextUtils.isEmpty(money)&&!TextUtils.isEmpty(poundage)){            double i =Double.parseDouble(money);            double j = Double.parseDouble(poundage);            double x=i*j;            DecimalFormat df   =   new   DecimalFormat("#####0.00");//当输入的数字到小数点后两位时就没法再继续输入            String d=df.format(x);            tixianTv.setText("提现金额为" + money + "元" + "(含" +d+ "手续费" + ")");        }
//取余小数点后两位
if (s.toString().contains(".")) {    if (s.length() - 1 - s.toString().indexOf(".") > 2) {        s = s.toString().subSequence(0,                s.toString().indexOf(".") + 3);        moneyEt.setText(s);        moneyEt.setSelection(s.length());    }}if (s.toString().trim().substring(0).equals(".")) {    s = "0" + s;    moneyEt.setText(s);    moneyEt.setSelection(2);}if (s.toString().startsWith("0")        && s.toString().trim().length() > 1) {    if (!s.toString().substring(1, 2).equals(".")) {        moneyEt.setText(s.subSequence(0, 1));        moneyEt.setSelection(1);        return;    }}
 
阅读全文
0 0
原创粉丝点击