如何弹出安卓手机键盘上的"?123"按键

10
我有一个EditText,需要根据状态处理数字和/或字母输入。在某些情况下,用户可以输入任一类型的输入。我只能使用setInputType(InputType.TYPE_CLASS_NUMBER);弹出“电话”键盘,虽然它可以工作,但不允许用户以某种方式返回QWERTY键盘。由于大部分输入确实是数字,因此我希望大多数时候向用户展示?123键盘。他们只需要偶尔返回QWERTY键盘。

如何弹出屏幕上的QWERTY键盘进行字母输入,如果是数字,则弹出“?123”键盘?我只想为用户节省一步,使他们不必每次都点击QWERTY键盘上的?123按钮。

更新:这是我想要显示的键盘。原因是我希望用户轻松切换字母输入和数字输入。没有办法从“数字键盘”切换到QWERTY键盘。在我的应用中,90%的输入需要数字输入,因此我希望将其弹出为方便。换句话说,他们只需要10%的时间切换到QWERTY。

enter image description here

对Configuration.KEYBOARD_QWERTY的调用input.setRawInputType(Configuration.KEYBOARD_QWERTY);在Honeycomb和后来的Gingerbread版本上有所不同(会弹出数字键盘)。在Gingerbread 2.2.3上,它按我想要的方式工作。 Honeycomb和2.3.7的键盘截图如下供参考。我不知道它们为什么如此不同。

Honeycomb 3.2 keyboard for Configuration.KEYBOARD_QWERTYGingerbread 2.3.7 keyboard for Configuration.KEYBOARD_QWERTY

谢谢,但那篇帖子似乎只涉及数字键盘。有一个得到高票的答案说“..也允许您输入自由文本。”但我不知道在哪里可以这样做。键盘上没有按钮可以这样做。请查看我的问题更新。希望能澄清。 - wufoo
请注意,许多手机的键盘可能不同。例如,三星手机默认具有Swype功能,或者您可以从市场下载其他键盘。 - Jonas Schmid
这是一个很好的观点,但自定义键盘需要实现与“原始”键盘相同的功能。如果Android实现了类似于input.setRawInputType(Configuration.KEYBOARD_?123);的方法,而自定义应用程序不支持该方法,那么它就是有问题的。并且它应该感觉到有问题。 - wufoo
2个回答

1
你可以使用多种方式使用数字键盘。 以下是其中一些,
方法1: 将此属性添加到您的文本字段(EditText)中。
android:inputType="number"

方法2:
以编程方式使用它。
edittext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);

0

我相信这个帖子回答了你的问题。

简而言之,将以下代码添加到您的代码中:

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

2
谢谢,我试过了。它似乎只在2.2.3上做我想要的事情。在3.2和2.3.7上,它会弹出“数字键盘”,而不是“?123”键盘。嗯... - wufoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接