your programing

프로그래밍 방식으로 EditText 숫자 설정

lovepro 2020. 10. 15. 08:22
반응형

프로그래밍 방식으로 EditText 숫자 설정


본질적으로 EditText의 숫자 값을 프로그래밍 방식으로 설정하려고합니다. 지금까지 :

weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());

괜찮지 만 소수 자리 (.)도 포함 할 수 있기를 원합니다. 어떤 아이디어?


이 시도:

<EditText
    android:inputType="number"
    android:digits="0123456789."
/>

코드에서 :

weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));

그러나 사용자는 여러 "."를 포함 할 수 있습니다. 실수에 대한 JoeyRA 의 답변을 참조하십시오 .


이 시도:

weightInput.setInputType(InputType.TYPE_CLASS_NUMBER);          
weightInput.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);           
weightInput.setKeyListener(DigitsKeyListener.getInstance(false,true));

public static DigitsKeyListener getInstance (boolean sign, boolean decimal) 

지정된 경우 0에서 9까지의 숫자와 빼기 기호 (시작 부분 만) 및 / 또는 소수점 (필드 당 하나만)을 허용하는 DigitsKeyListener를 반환합니다.

이것은 많은 '.'에 대한 문제를 해결합니다. EditText에서


사용 InputType.TYPE_NUMBER_FLAG_DECIMAL.

참조 : 입력 유형 .


IP 주소 입력 용 (여러 점과 숫자)

시험

<EditText
    android:id="@+id/ipBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/ipAddrHint"
    android:inputType="numberDecimal|number"
    android:digits="0123456789."
    android:textSize="30sp" />

참고 URL : https://stackoverflow.com/questions/7300490/set-edittext-digits-programmatically

반응형