안드로이드의 EditText에 숫자 키보드를 어떻게 표시합니까?


146

기본적으로 특정 EditText에 포커스가 있으면 숫자 패드 모드로 전환하고 싶습니다.


4
이 질문에는 구체적으로 허용 된 입력 유형을 변경하려는 의사가 없습니다. 입력 유형을 변경하지 않고 키보드 모드를 변경하는 방법을 묻습니다. 모든 답변은 입력 유형을 변경하는 방법을 설명합니다.
AlanKley

이 질문에 대한 내 답변을 확인하십시오 stackoverflow.com/questions/39593324/…
Android 도움말

답변:


261

inputType대한 구성 할 수 있습니다 EditText:

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

6
또한이를 사용하려면 Android 1.5를 타겟팅해야합니다 (1.1에서는 사용할 수 없음)
Wilka

4
문제는 다시 전환 할 수 없다는 것입니다. "number | text"사용도 작동하지 않습니다. 숫자 키보드를 표시하려는 경우 텍스트로 다시 전환 할 수 없습니다.

Brian에 동의합니다. 첫 번째 필드가 알파이고 다음 필드가 숫자 인 경우 'Next'버튼을 사용하여 다음 필드로 이동할 수 없습니다!
Ahmed

돌아갈 수 있는지 여부는 전화에 달려 있습니다. 내 것이 허용합니다.
Martin Clemens Bloch

키 보드 유형 번호를 변경하고 편집 텍스트에 텍스트를 붙여 넣기를 원합니다. 수행하는 방법?
이브라힘 야니크

115

Java 파일에서 수행하려면 다음을 수행하십시오.

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

51

이 구현이 유용하다는 것을 알았고 더 나은 키보드를 보여주고 입력 문자를 제한했습니다.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

또한 android:maxLength최대 수 를 제한하는 데 사용할 수 있습니다 .

프로그래밍 방식으로이 작업을 수행하려면

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);

프로그래밍 방식 으로이 작업을 수행 할 수있는 방법이 있습니까? 내 EditText에 대해 제한된 수의 키보드를 얻으려고하지만 활동에서 생성되어야하는 방식으로 설정되었습니다.
Martin Erlic

18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

큰 숫자 패드를 다이얼러로 표시합니다.


11

두 가지 방법으로 할 수 있습니다

  1. 런타임 세트

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. XML 사용

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

5

분수가 필요한 경우 다음과 같은 답이 있습니다.

android:inputType="numberDecimal"

4

대화 상자에서 EditText를 사용하거나 동적으로 작성하고 xml에서 설정할 수없는 경우이 예제는 동적 편집 텍스트 등을 사용하는 동안 해당 유형의 키보드를 설정하는 데 도움이됩니다

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

여기서 myEditTxt는 동적 EDIT TEXT 객체 (이름)입니다.


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

통화 형식과 같은 텍스트 서식을 수동으로 지정하고 키보드 만 제어하려는 경우 선택이 가능합니다. 당신의 문자를 필터링하지 않습니다. 감사!
lauksas

이것은 저에게 매력처럼 작용했습니다. 필드가 아직 편집되지 않은 경우 텍스트 자리 표시 자 값을 표시하고 싶지만 입력을 숫자로 제한하고 제한된 키보드를 표시하고 싶습니다.
Alex Suzuki


2

아래 코드는 실수로 "0123456789"이외의 유형을 입력하더라도 "0123456789"라는 숫자 만 허용합니다. 편집 텍스트는 허용되지 않습니다.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));

당신은 당신의 코드를 설명하는 주석을 추가하고 솔루션 왜해야
cyroxis

1

자바 파일에서 아래 코드를 사용하십시오.

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);


0

XML 코드에서 이것을 정의하십시오.

android:inputType="number"

0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

레이아웃 xml 코드에서 EditText number1을 만든 경우 Number Keyboard를 number1 EditText로 설정하려는 경우 Java 코드를 사용하여이 방법을 수행 할 수 있습니다.
Shiv Buyya
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.