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

  • Kiddyzuzaa

    Kiddyzuzaa

    25 ŞUBAT 2014
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006
  • JeezyVEVO

    JeezyVEVO

    12 Mayıs 2009