programing tip

EditText가 숫자 만 받아들이도록 강제하는 방법은 무엇입니까?

itbloger 2020. 12. 28. 07:53
반응형

EditText가 숫자 만 받아들이도록 강제하는 방법은 무엇입니까?


EditText가 숫자 만 받아들이도록 강제하는 방법.?


android:inputType="number"레이아웃 XML에서 사용


이것은 또한 잘 작동합니다.

android:digits="0123456789"

또는 다음을 추가 할 수 있습니다.

yourEditText.setInputType(InputType.TYPE_CLASS_NUMBER | 
                          InputType.TYPE_NUMBER_FLAG_DECIMAL |
                          InputType.TYPE_NUMBER_FLAG_SIGNED);

이것은 숫자, 부동 소수점 숫자 및 음수를 허용하며 필요에 따라 이들 중 하나를 제거 할 수 있습니다.


android:inputType="number"XML 파일에서 사용할 수 있습니다 . numberDecimal같은 다른 값도 지정할 수 있습니다 .

또한 android:singleLine="true"한 줄 에 사용할 수도 있습니다 Edittext.

또한 android:numericandroid:maxLength. 특히 maxLength는 길이 제한을 설정하는 데 유용 할 수 있습니다.


이것이 최종 솔루션입니다.

 public static void enforceEditTextUseNumberOnly(EditText field) {
        Typeface existingTypeface = field.getTypeface();
        field.setInputType((InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
        field.setTransformationMethod(new NumericKeyBoardTransformationMethod());
        field.setTypeface(existingTypeface);
        if (field.getParent().getParent() instanceof TextInputLayout) {
            ((TextInputLayout) field.getParent().getParent()).setPasswordVisibilityToggleEnabled(false);
        }
    }

  private static class NumericKeyBoardTransformationMethod extends PasswordTransformationMethod {
        @Override
        public CharSequence getTransformation(CharSequence source, View view) {
            return source;
        }
    }

참조 URL : https://stackoverflow.com/questions/9334314/how-to-force-edittext-to-accept-only-numbers

반응형