【发布时间】:2013-11-26 02:38:25
【问题描述】:
我有一个应用程序,它需要将一系列以空格分隔的十六进制数字组(很像产品密钥)输入到 EditText 中,例如 AB34 67EF ...
问题在于,每次输入数字后跟空格时,Android 键盘都会自动切换回字母模式,这对用户来说既令人困惑又非常烦人。
例如,当键入上述两组时,当按下“3”时,键盘将保持数字模式,但在“4”之后按下空格键时,键盘将切换到字母模式 - 这意味着用户必须在输入“6”之前手动切换回数字。
EditText 控件(如下)为输入类型设置了 textNoSuggestions 标志,但无论我更改什么 inputType 和键盘设置,我都无法让键盘在空格后保持数字模式。
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:inputType="textCapCharacters|textNoSuggestions"
android:ems="10" >
<requestFocus />
</EditText>
有没有办法在输入空格字符后强制键盘停留在当前模式,或者以编程方式切换键盘模式?
【问题讨论】:
-
用户如何输入空格?在我的 SG3 上,本机键盘在数字模式下没有空格。我把
android:inputType="number"我看到的一个解决方案是有4个编辑文本并将焦点从一个切换到另一个,这样做用户只需填写他的代码并且它们很好地分开。与其说是真正的解决方案,不如说是一个技巧,抱歉。 -
感谢您的建议。该应用程序实际上是在平板电脑上运行的,因此始终显示空格键。但即使在我的 Nexus 4 上,数字和符号模式下仍然有一个小空格键。
-
您找到解决此问题的方法了吗?我在 Nexus 5 手机中发现了同样的问题。
-
@AlejandroMezcua 不是真的。我最终使用 TextWatcher 来适当地监视输入和自动插入空格。但如果用户在数字模式下仍选择按空格键,则键盘将恢复为字母。
-
@adelphus 好的,我的问题是我会自动插入空格(或其他分隔符),所以如果用户切换到数字输入,在我输入分隔符后,键盘会决定它必须切换到QUERTY 回复。但并非每部手机都会发生这种情况。 Nexus 5 和 HTC One Mini 会自动更改,但 Galaxy S4 不会。我无法弄清楚如何检测该键盘状态以及如何将其保持在给定状态。