Limitar decimais no TextEdit

Top  Previous  Next

Crie a classe

 
Arquivo: DecimalDigitsInputFilter.java

package com.hello;

 

import android.text.InputFilter;

import android.text.Spanned;

 

public class DecimalDigitsInputFilter implements InputFilter {

 

 private final int decimalDigits;

 

 public DecimalDigitsInputFilter(int decimalDigits) {

         this.decimalDigits = decimalDigits;

 }

 

 public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

 

         int dotPos = -1;

         int len = dest.length();

         for (int i = 0; i < len; i++) {

                 char c = dest.charAt(i);

                 if (c == '.' || c == ',') {

                         dotPos = i;

                         break;

                 }

         }

         if (dotPos > 0) {

                 // if the text is entered before the dot

                 if (dend <= dotPos) {

                         return null;

                 }

                 if (len - dotPos > decimalDigits) {

                         return "";

                 }

         }

         return null;

 }

}

 

Como usar

 

editText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(2)});