본질적으로 EditText의 숫자 값을 프로그래밍 방식으로 설정하려고합니다. 지금까지 :
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
괜찮지 만 소수 자리 (.)도 포함 할 수 있기를 원합니다. 어떤 아이디어?
답변:
이 시도:
<EditText
android:inputType="number"
android:digits="0123456789."
/>
코드에서 :
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
그러나 사용자는 여러 "."를 포함 할 수 있습니다. 실수에 대한 JoeyRA 의 답변을 참조하십시오 .
TextView
소스 : // If no input type was specified, we will default to generic text, since we can't tell the IME about the set of digits that was selected.
.
9시 이후 의 용도는 무엇입니까 ?
이 시도:
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에서
setInputType
몇 번이고 반복 한다면 두 번째 것부터 첫 번째 것보다 우선하지 않습니까? 난 당신이 사용한다고 생각 weightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
하지만 난 100 % 확실하지 않다
사용 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" />
DialerKeyListener
대신에DigitsKeyListener