2009-07-13 18 views
121

基本的には、特定のEditTextにフォーカスがあるとすぐにナンバーパッドモードに切り替える必要があります。アンドロイドのEditTextに数字キーボードを表示するにはどうすればいいですか?

+4

質問は、特に許可入力タイプを変更する欲求を述べていません。入力モードを変更せずにキーボードモードをどのように変更するかを尋ねるだけです。すべての答えは、入力の種類を変更する方法を説明します。 – AlanKley

+0

この質問で私の答えを確認してくださいhttp:// stackoverflow。com/questions/39593324/can not-resolve-symbol-showsoftinput/39593871#39593871 –

答えて

224

あなたEditTextためinputTypeを設定することができます。

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

これは驚くほど簡単です。 歓声 –

+6

これを使用するには、Android 1.5をターゲットにする必要があります(1.1では使用できません)。 – Wilka

+4

問題は、スイッチバックできないことです。 "number | text"を使用しても動作しません。数字のキーボードを表示したい場合は、それをテキストに戻すことはできません。 –

107

Javaファイルでそれを行うには:

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

私はより良いキーボードを示し、この実装は有用であることが判明し、入力文字を制限します。

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

さらに、android:maxLengthを使用して最大数を制限することもできます。ダイアログで、あなたのEditTextを使用して、動的に作成し、それをXMLから、それを設定することはできませんされている場合、この例では、キーボードの間の、そのタイプを設定する際に役立ちます

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

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

これをプログラムで実行する方法はありますか?私のEditTextのために限られた数のキーボードを欲しがっているのですが、そのような方法で設定されているので、アクティビティで生成する必要があります。 – santafebound

3

:プログラムでこれを行うには

あなたは、動的なテキスト編集を使用しているなどmyEditTxtが

10

あなたは2つの方法それを行うことができますダイナミックエディットテキストオブジェクト(名前)です

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 
  1. ランタイムは、XML

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

を使用するダイヤラとして多数のパッドが表示され

EditText input = new EditText(this); 
input.setInputType(InputType.TYPE_CLASS_NUMBER); 
  • を設定します。

  • +0

    まさに私が必要なもの! – jjLin

    0
    editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
    
    2

    入力タイプや詳細より多くのあなたが小数が必要な場合は、これはあなたのための答えであるGoogleのウェブサイト

    4

    hereが見つかりました:

    android:inputType="numberDecimal" 
    
    0

    あなたのXMLコード

    でこれを定義します
    android:inputType="number" 
    
    0

    Javaファイル

    editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

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

    コードを説明していただけますか? – MBH

    関連する問題