【问题标题】:Prevent Android keyboard from reverting back to alphabetic mode防止 Android 键盘恢复为字母模式
【发布时间】: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 不会。我无法弄清楚如何检测该键盘状态以及如何将其保持在给定状态。

标签: android keyboard


【解决方案1】:

我也需要。 inputType textVisiblePassword 对我有用。 参考: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="textVisiblePassword|textCapCharacters"
    android:ems="10" >

    <requestFocus />
</EditText>

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 2012-10-12
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2020-07-06
    相关资源
    最近更新 更多