source

Android에서 EditText를 숫자 값만 허용하도록 설정하려면 어떻게 해야 합니까?

factcode 2023. 9. 1. 21:22
반응형

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="numberPassword"

inputType="phone"

inputType="phone"

inputType="숫자"

inputType="number"

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

반응형