Android에서 EditText를 숫자 값만 허용하도록 설정하려면 어떻게 해야 합니까?
나는 있습니다.EditText
정수 값만 삽입할 수 있습니다.제가 어떤 부동산을 사용해야 하는지 누가 알려주실 수 있나요?
XML 특성으로 추가합니다.
예:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
코드상, 당신은 할 수 있습니다.
ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
숫자 입력에만 사용android:inputType="numberPassword"
와 함께editText.setTransformationMethod(null);
번호 자동 입력을 제거합니다.
OR
android:inputType="phone"
숫자 입력에 대해서만, 저는 이 두 가지 방법이 더 좋다고 생각합니다.android:inputType="number"
inputType으로 "숫자"를 언급할 때의 제한 사항은 키보드가 문자로 전환할 수 있고 다른 특수 문자를 입력할 수 있다는 점입니다.키보드에는 숫자만 표시되므로 "numberPassword" inputType에는 이러한 문제가 없습니다.키보드에서 문자로 전환할 수 없는 경우 "phone" inputType도 작동합니다.그러나 +, /, N 등과 같은 특수 문자를 입력할 수 있습니다.
editText.setTransformationMethod(null)를 사용하는 inputType="numberPassword";
inputType="phone"
inputType="숫자"
android:inputType="numberDecimal"
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
다음 코드를 사용해 보십시오.
Edittext_name.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
숫자만 입력할 수 있습니다.문자를 입력할 수 없습니다.숫자가 아닌 문자를 입력하려면 내부 따옴표 사이의 값을 편집할 수 있습니다.getInstance
.
아래를 사용하면 문제를 더 잘 해결할 수 있습니다.
xml 단위:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
또는 //etfield 내의 활동에 있습니다. 텍스트 변경 청취자 추가
private String blockCharacterSet="+(/)N,*;#";//declare globally
try {
for (int i = 0; i < s.length(); i++) {
if (blockCharacterSet.contains(s.charAt(i) + "")) {
String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
et_ArrivalSetTemp.setText(corrected_settempvalue);
if (corrected_settempvalue.length() != 0)
et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());
}
}
} catch (Exception d) {
d.printStackTrace();
}
0부터 9까지의 숫자만 사용하려는 사람이 있다면,imeOptions
활성화한 다음 아래 줄을 사용합니다.EditText
Android:inputType="number|없음"
숫자만 허용되며 키보드의 완료/다음 단추를 클릭하면 포커스가 다음 필드로 이동합니다.
XML에서 사용할 수 있습니다.
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
아니면,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
아니면,
android:inputType="phone"
프로그래밍 방식으로 사용할 수 있습니다.
editText.setInputType(InputType)을 선택합니다.TYPE_CLASS_NUMBER);
TextWatcher가 있는 키보드에서 Enter 키를 누르는 것을 잡아야 합니다.하지만 모든 숫자 키보드 안드로이드:inputType="numberDecimal" 또는 "numberPassword" e.t.c.에서 사용자가 누를 때 Enter를 잡을 수 없다는 것을 알게 되었습니다.
나는 노력했다.android:digits="0123456789\n"
그리고 모든 숫자 키보드는 Enter와 TextWatcher에서 작동하기 시작했습니다.
그래서 제 방법은:
android:digits="0123456789\n"
android:inputType="numberPassword"
플러스editText.setTransformationMethod(null)
바말리와 아비앙크 덕분입니다.
2013년에 정답이 무엇이었는지는 모르겠지만, 오늘날은 다음과 같습니다.
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
화면에 표시되는 키보드는 숫자 키패드를 포함한 모든 것을 볼 수 있습니다.
는 로 에스프레소를에프레는, 무한지혜로소한스다의거,typeText("...")
설명할 수 없이 필터를 우회하고 쓰레기를 입력합니다.
나로서는 가장 간단한
android:numeric="integer"
비록 이것이 더 맞춤형이기는 하지만.
android:digits="0123456789"
언급URL : https://stackoverflow.com/questions/4645119/how-do-you-set-edittext-to-only-accept-numeric-values-in-android
'source' 카테고리의 다른 글
CCU가 최대 500개인 애플리케이션에 대해 이 판독값이 괜찮습니까? (0) | 2023.09.01 |
---|---|
mysql-native 드라이버를 사용하여 DB에 연결한 후 예외 발생 (0) | 2023.09.01 |
C와 어셈블리 소스를 혼합하고 cmake로 빌드 (0) | 2023.09.01 |
html 웹 페이지 전체를 에이잭스 응답으로 대체하는 방법은 무엇입니까? (0) | 2023.08.27 |
아이폰: WWDR 중급 인증서란 무엇입니까? (0) | 2023.08.27 |