2

アプリケーションには、textview、EditText、buttonのようなウィジェットがないアクティビティがあります。数値キーボードをアクティビティのデフォルトの実行時間に表示

プログラムでこれを実現したい(実行時) 以下のコードでシステムキーボードを表示することに成功しました。

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

    imm.showSoftInput(getWindow().getDecorView(), 0); 

qwertyのデフォルトキーボードの代わりに数値キーボードを表示したいとします。

誰でもこれを達成する方法を知ることができますか?

答えて

1

カスタムの助けを借りて、あなたがこのように達成することができ、通常InputMethodManagerと鍵盤を表示することができます表示します。このマネージャはInputConnectionに入力を委譲し、次にInputMethodに委譲します。

ので、そのように実行するカスタムビューを作る。..

public class MyCustomView extends View { 

    ..your methods here.. 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
     InputConnection inputConnection = super.onCreateInputConnection(outAttrs); 
     outAttrs.inputType |= InputType.TYPE_CLASS_NUMBER; 
     return inputConnection; 
    } 
} 

・ホープ、このことができます。..

+0

私はすでにこの答えを読んでいます:http://stackoverflow.com/questions/3980510/display-a-numeric-keypad-on-activity-without-an-input-area?rq=1しかし、それうまくいかなかった。これを試しましたか? – NovusMobile

+0

多くの時間前に使用されています。 –

0

InputTypeをInputMethodManagerに設定することはできません。しかし私が遭遇した回避策は、レイアウトにedittextを置き、inputTypeをxmlにNumberとして設定し、そのビューを非表示にすることです。その後、このエディットテキストを実行時に使用して数値キーボードを表示します。 ように:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(your_edittext, 0); 
+0

を試すことができますしかし、私はあなたに言ったように、これにウィジェットを入れることはできません。私はJNIの部分に関して働いています – NovusMobile

0

あなたは私たちがこれを行うことができますAndroidアプリケーションの要点についてこの

edittext.setInputType(InputType.TYPE_CLASS_NUMBER); 
関連する問題