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

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013