android EditText 中的TextWatcher 限制小数点位数

2014-12-6 10:47:15     人阅读    

需求要求:

不能在xml中配置android:inputType="number"  android:digits="0123456789."
需要用代码实现,当用户输入多余的小数点时,默认什么都不输入


需求实现的具体代码

private class DoubleTextWatcher implements TextWatcher {
        private EditText mEditText;   
        public DoubleTextWatcher(EditText e) {
             mEditText=e;
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {           
        }
        public void onTextChanged(CharSequence s, int start, int before, int count) {   
        }
   @Override
          //主要是重置文本改变事件,判断当前输入的内容
 public void afterTextChanged(Editable s) {
  // TODO Auto-generated method stub
  String content = s == null ? null : s.toString();
  if(s == null || s.length() == 0) {
   return;
  }
  int size = content.length();
  if(!content.endsWith(".")) { //最后输入的不是点,无需处理
   return;
  }
  if(content.substring(0, size - 1).contains(".")) { //判断之前有没有输入过点
   s.delete(size-1, size);//之前有输入过点,删除重复输入的点
  }
 }
}


原文地址:http://www.itmmd.com/201412/262.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android app打包部署到手机上报waiting for debugger   上一篇
下一篇  Android 5.0 Lollipop 处理 media buttons 事件的问题
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!