SORU
18 Mart 2011, Cuma


Android EditText Ondalık basamak sınırı

Size mali yönetmenize yardımcı olan bir uygulama yazmaya çalışıyorum. Kullanıcı bir miktar para belirtebilir nerede EditText bir Alan kullanıyorum.

Para için mükemmel değildir Tamam, bu insanlar 123.122 gibi numaraları girmek için izin dışında çalışır numberDecimal inputType kurdum.

Bir şekilde iki ondalık noktadan sonra bir karakter sayısı sınırı var mı?

CEVAP
25 Kasım 2011, Cuma


Daha zarif bir yolu, aşağıdaki gibi bir düzenli ifade ( regex ) kullanarak olacaktır

public class DecimalDigitsInputFilter implements InputFilter {

Pattern mPattern;

public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
    mPattern=Pattern.compile("[0-9]{0,"   (digitsBeforeZero-1)   "} ((\\.[0-9]{0,"   (digitsAfterZero-1)   "})?)||(\\.)?");
}

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

        Matcher matcher=mPattern.matcher(dest);       
        if(!matcher.matches())
            return "";
        return null;
    }

}

Kullanmak için:

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Air_Fooj

    Air_Fooj

    24 NİSAN 2009
  • Autocar

    Autocar

    11 Mart 2006
  • magnum33563

    magnum33563

    8 NİSAN 2011