[android] 프로그래밍 방식으로 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" />


답변