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

  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009