EditText限制输入的小数点只能2个

来源:互联网 发布:专业网络销售团队 编辑:程序博客网 时间:2024/06/07 12:42
et.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
//这部分是处理如果输入框内小数点后有俩位,那么舍弃最后一位赋值,光标移动到最后
if (s.toString().contains(".")) {
                   if (s.length() - 1 - s.toString().indexOf(".") >2) {
                    
                       et.setText(s.toString().subSequence(0,
                               s.toString().indexOf(".") +3));
                     
                       et.setSelection(s.toString().trim().length()-1
                       );
                   }
               }
//这部分是处理如果用户输入以.开头,在前面加上0
               if (s.toString().trim().substring(0).equals(".")) {
                  
                   et.setText("0"+s);
                   et.setSelection(2);
               }
             //这里处理用户 多次输入.的处理 比如输入 1..6的形式,是不可以的
               if (s.toString().startsWith("0")
                       && s.toString().trim().length() > 1) {
                   if (!s.toString().substring(1, 2).equals(".")) {
                   et.setText(s.subSequence(0, 1));
                   et.setSelection(1);
                       return;
                   }
               }
}
});
}
0 0