EditText の長さを 7 桁の整数と 2 桁の小数点以下に制限するにはどうすればよいでしょうか? 質問する

EditText の長さを 7 桁の整数と 2 桁の小数点以下に制限するにはどうすればよいでしょうか? 質問する

ユーザーが最大 7 桁の数字と小数点以下 2 桁を入力できるボックスがありますEditText。7 桁を入力した後は、もう 1 桁追加できないようにする必要がありますが、小数点以下 2 桁まで入力できます。小数点以下 2 桁のフィルターと XML の次のコードを使用します。

android:maxLength="7"    
android:imeOptions="actionDone"                  
android:inputType="numberDecimal"

しかし、 8桁EditTextまで許可されていますenter。どうすれば解決できますか?

ベストアンサー1

onCreateでこれを試してください

 youreditText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(5,1)});

プログラムのどこにでも

   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;
            }

        }

おすすめ記事