ユーザーが最大 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;
}
}