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

  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • RD

    RD

    19 NİSAN 2006
  • SRT Photoshop Tutorials

    SRT Photosho

    19 Aralık 2012