有没有办法隐藏Android软键盘中的一些键?

时间:2015-05-05 13:12:23

标签: android keyboard

我正试图摆脱创建自定义键盘的困境。我想知道是否有办法在默认的Android软键盘中隐藏密钥。例如,我有一个需要无符号十进制数的EditText字段。但是每当键盘弹出时," - "标志总是显示,显然,它被禁用。我想摆脱这个" - "登录。

5 个答案:

答案 0 :(得分:4)

  

我想知道是否有办法在默认的Android软键盘中隐藏密钥

没有

首先,没有单一的"默认Android软键盘"。 Android上有超过10亿台设备,涉及数千种型号,其中有数十种设备,默认情况下为#34;键盘已安装。用户还可以将软键盘安装为第三方应用程序。

其次,您无法控制其中任何一个。最好的情况是,您可以使用android:inputType等属性提供所需内容的建议。但是,这些是请求,而不是命令,输入法编辑器的作者不必遵守它们。此外,如何他们尊重他们取决于输入法编辑器的作者。

  

我正试图摆脱创建自定义键盘。

那将毫无用处。您无法强制用户使用键盘。您的键盘可能无法满足用户的其他要求。等等。

  

例如,我有一个需要无符号十进制数的EditText字段。但是每当键盘弹出时," - "标志总是显示,显然,它被禁用。我想摆脱这个" - "登录。

这取决于输入法编辑器的实现者,而不是你。某些键盘可能会隐藏密钥。有些人可能会禁用密钥。有些人可能完全忽略签名/未签名的请求,只显示标准的数字键盘。有些人可能完全忽略数字请求并显示他们的标准键盘,特别是如果他们真的不具有"键"的概念。

答案 1 :(得分:0)

是的,你可以Create a Custom Keyboard on Android

将此键盘包含在已安装的应用程序中,并触发您正在使用的特定输入框的键盘。

另见:InputMethodService用于绑定和使用输入机制的API。

答案 2 :(得分:0)

根据docs,您可以使用EditText配置InputType。注意TYPE_NUMBER_FLAG_SIGNED

  

TYPE_CLASS_NUMBER的标记:该数字已签名,允许在开头有正号或负号。

答案 3 :(得分:0)

我不认为没有创建自定义键盘是可能的。默认键盘通常由设备制造商实施。这就是为什么xml属性android:inputType在不同设备上具有不同效果的原因。

答案 4 :(得分:0)

作为更新,我承认只使用自定义键盘。由于我想要的键盘只是带小数点的数字键盘,以及删除,清除和输入等控制键,因此很容易制作。

我使用以下教程制作了键盘(没有Hex和其他特殊键): http://www.fampennings.nl/maarten/android/09keyboard/index.htm

这个教程有一个缺陷,其中布局不会为键盘平移。因此,EditText字段将隐藏在键盘下方。所以我将CustomKeyboard类更改为InputMethodService。为此,我按照tutorial

进行了操作

最后,每次我编辑EditText时,整个屏幕都会以横向模式隐藏,因为我的应用程序只会使用横向。所以这是不可接受的。我发现我必须在我的CustomKeyboard类中添加此方法(因为它是InputMethodService的衍生物)来自此answer

谢谢大家的帮助。我希望这能帮助那些想要做类似事情的人。