我有一个自定义键盘,不想显示Android软键盘。这可以通过以下代码来实现(如何在EditText上隐藏Android软键盘):
editText.setInputType(InputType.TYPE_NULL);
但是,EditText应该只允许数字。这可以通过以下方式实现:
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
我似乎找不到结合两种功能的方法。将输入类型设置为TYPE_NULL会在使用硬件键盘时允许非数字字符,而将输入类型设置为TYPE_CLASS_NUMBER会导致软键盘弹出。
airowe的回答引导了我正确的方向。该解决方案似乎不适用于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);
}
这可能会允许蜂窝前平板电脑输入文本。但是我认为这可以忽略不计。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句