AndroidのEditTextで数字キーボードを表示するにはどうすればよいですか?


146

基本的に、特定のEditTextにフォーカスが移ったらすぐにテンキーモードに切り替えます。


4
質問は、許可された入力タイプを変更したいという要望を具体的に述べていません。入力タイプを変更せずに、キーボードモードを変更する方法を尋ねるだけです。すべての回答は、入力タイプを変更する方法を説明しています。
AlanKley 2013年

この質問に私の答えをチェックstackoverflow.com/questions/39593324/...
Androidのヘルプ

回答:


261

を構成できinputTypeますEditText

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

6
また、これを使用するにはAndroid 1.5をターゲットにする必要があることにも注意してください(1.1では使用できません)
Wilka

4
問題は、元に戻すことができないことです。"number | text"を使用しても機能しません。数字キーボードを表示したい場合、テキストに戻すことはできません。

ブライアンに同意します。最初のフィールドがアルファで次のフィールドが数値の場合、[次へ]ボタンを使用して次のフィールドに進むことができません。
アーメド

戻ることができるかどうかは電話にかかっていると思います。鉱山はそれを可能にします。
マーティンクレメンスブロック14

キーボードタイプの番号を変更したいのですが、edittextにテキストを貼り付けたいです。実行する方法?
イブラヒムYANIK

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、2015

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

大きな数字パッドがダイヤラとして表示されます。


11

あなたはそれを2つの方法で行うことができます

  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から設定できない場合、この例は、動的Edit Textを使用しているときにそのタイプのキーボードを設定するのに役立ちます。

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

ここで、myEditTxtは動的なEDIT TEXTオブジェクト(名前)です。


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

(通貨のように)テキストを手動でフォーマットしていて、キーボードだけを制御したい場合は、それが選択です。あなたの文字をフィルタリングしません。ありがとう!
ラウクサ

これは私にとって魅力のように働きました。フィールドがまだ編集されていないときにテキストのプレースホルダー値を表示したいが、それでも入力を数字に制限し、制限されたキーボードを表示したい。
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

Javaファイルで以下のコードを使用してください

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);



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

EditText number1をレイアウトxmlコードで作成した場合、Number Keyboardをnumber1 EditTextに設定する場合は、Javaコードを使用してこの方法を実行できます。
Shiv Buyya 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.