私はカスタムキーボードを持っていて、Androidソフトキーボードを表示したくありません。これは次のコードで実現できます(EditTextでAndroidソフトキーボードを非表示にする方法):
editText.setInputType(InputType.TYPE_NULL);
ただし、EditTextは数字のみを許可する必要があります。これは次のようにして実現できます。
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
私は両方を組み合わせる方法を見つけるように見えることはできません機能性。 inputtypeをTYPE_NULLに設定すると、ハードウェアキーボードを使用するときに数値以外の文字を使用でき、inputtypeをTYPE_CLASS_NUMBERに設定すると、ソフトキーボードがポップアップします。
回答:
回答№1は2airoweからの答えは私を右手に導いた方向。このソリューションはAndroid 2.3.Xデバイスでは機能しませんでした(ソフトキーボードはまだポップアップします)ので、少し修正しました。 私は次のコードを使用して終了しました:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); //hide keyboard
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
}
else
{
editText.setRawInputType(InputType.TYPE_NULL);
}
これはおそらく、ハニカム前錠剤がテキストを入力することを可能にする。しかし、私はこれが無視できると思います。
回答№2の場合は1
の代わりに
editText.setInputType(InputType.TYPE_NULL);
つかいます
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(fieldController.getFieldComponent().getWindowToken(), 0); //hide keyboard
キーボードを隠す。
次に、入力タイプを必要なものに設定することができます。
すなわち、
editText.setInputType(InputType.TYPE_CLASS_NUMBER);