您的位置:首页 > 其它

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

2016-04-09 11:43 197 查看
et_xiaoshishu.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(".") >1) {

                     

                        et_xiaoshishu.setText(s.toString().subSequence(0,

                                s.toString().indexOf(".") +2));

                      

                        et_xiaoshishu.setSelection(s.toString().trim().length()-1

                        );

                    }

                }
//这部分是处理如果用户输入以.开头,在前面加上0

                if (s.toString().trim().substring(0).equals(".")) {

                   

                    et_xiaoshishu.setText("0"+s);

                    et_xiaoshishu.setSelection(2);

                }

              //这里处理用户 多次输入.的处理 比如输入 1..6的形式,是不可以的

                if (s.toString().startsWith("0")

                        && s.toString().trim().length() > 1) {

                    if (!s.toString().substring(1, 2).equals(".")) {

                    et_xiaoshishu.setText(s.subSequence(0, 1));

                    et_xiaoshishu.setSelection(1);

                        return;

                    }

                }
}
});

et_xiaoshishu 为Editetext 文本输入框
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息