Edittext输入数值时做最大最小的限制如0.01到9999.99

xiaoxiao2021-02-27  200

方法比较简单,监听输入的数值是否大于或小于指定的值即可,如果大于了,就给edit设置上最大的值,如果小于了就给edit设置最小的值

注意要在xml中指定inputType,不然字符串转int或者double的时候会出现异常

/** edittext只能输入数值的时候做最大最小的限制 */       public static void setRegion(final EditText edit, final double MIN_MARK, final double MAX_MARK) {           edit.addTextChangedListener(new TextWatcher() {               @Override               public void onTextChanged(CharSequence s, int start, int before, int count) {                   if (start > 1) {                       if (MIN_MARK != -1 && MAX_MARK != -1) {                           double num = Double.parseDouble(s.toString());                           if (num > MAX_MARK) {                               s = String.valueOf(MAX_MARK);                               edit.setText(s);                           } else if (num < MIN_MARK) {                               s = String.valueOf(MIN_MARK);                               edit.setText(s);                           }                           edit.setSelection(s.length());                       }                   }               }                  @Override               public void beforeTextChanged(CharSequence s, int start, int count, int after) {               }                  @Override               public void afterTextChanged(Editable s) {                   if (s != null && !s.equals("")) {                       if (MIN_MARK != -1 && MAX_MARK != -1) {                           double markVal = 0;                           try {                               markVal = Double.parseDouble(s.toString());                           } catch (NumberFormatException e) {                               markVal = 0;                           }                           if (markVal > MAX_MARK) {                               edit.setText(String.valueOf(MAX_MARK));                               edit.setSelection(String.valueOf(MAX_MARK).length());                           }                           return;                       }                   }               }           });       }  

转载请注明原文地址: https://www.6miu.com/read-7209.html

最新回复(0)