【问题标题】:EditText with inputType numberDecimal has underlines带有 inputType numberDecimal 的 EditText 有下划线
【发布时间】:2013-09-29 14:22:35
【问题描述】:

我发现我认为使用带有 inputType=numberDecimal 的 EditText 的行为很奇怪。

在我的 Galaxy Nexus(使用 Google 键盘)上,当我点击 editText 字段时,通常会出现下划线:

它几乎看起来可以是自动更正、自动完成或文本建议,但这对于 numberDecimal 输入类型没有意义。我已经尝试过 textNoSuggestions 并且正如预期的那样,这并没有删除下划线。

如果存在,这些下划线目前正在给我带来问题。我在editText上附加了一个textwatcher作为侦听器。点击该字段后,只要出现此下划线并且光标位于屏幕截图中:

  1. 当用户输入 2 时,onTextChanged 收到:0.002。这是对的。然后我在 afterTextChanged 中将此数字格式化为 0.02。

  2. 此时如果用户输入 3,onTextChanged 会收到:0.020023。这是不正确的。出于某种原因,“002”被附加到 3 之前的 editText 值中。这显然会在 afterTextChanged 中抛出我的格式化逻辑。

我的 textwatcher 逻辑已经工作了很长时间,直到最近才开始出现这个问题。每当我移动光标时,使下划线消失,然后我看不到 onTextChanged 接收“不正确”值的问题。

至于使下划线开始发生的变化,我相信我已将其范围缩小到 Google 键盘应用程序。当我使用 Google 键盘版本 1.1.1881.801980 时,我看到了这个问题。我卸载了更新并回滚到版本 4.2.2-573038,并且在该版本中,没有任何下划线,因此我的 textwatcher 没有问题。

所以,我的问题:

有谁知道 numberDecimal 字段中的下划线应该是什么?这是合法的还是这是一个错误?

Bug 与否,有人知道如何防止用户点击该字段时出现此下划线吗?

【问题讨论】:

  • 请关掉你的键盘字典,让我知道...它对我有用...
  • 您好,Sri,我不确定如何关闭我的键盘词典?我确实尝试进入设置/语言和输入并关闭自动大写、自动更正、更正建议、动态浮动预览、手势跟踪和下一个单词建议。我仍然看到下划线。我很想知道是哪个选项导致了这种情况,但我需要一个程序化的解决方案,而不是要求用户更改他们的手机设置。

标签: android android-softkeyboard


【解决方案1】:

此问题已在 Google 键盘应用程序的最新更新版本 2.0.18933.905102a 中得到修复。

【讨论】:

    【解决方案2】:

    我认为这是一个错误,即使在 EditText 上调用了 setText 之后,键盘也会记住旧输入的状态。我使用以下代码修复了它以重置状态。

    InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    
    mgr.restartInput(editText);
    

    【讨论】:

      【解决方案3】:

      我有一个非常相似的问题。每当我得到带下划线的文本时,我的文本侦听器就会得到 onTextChanged 中 CharSequence 的意外值。

      【讨论】:

        【解决方案4】:

        设置

          android:inputType="textNoSuggestions"
        

        【讨论】:

        • 正如我所提到的,我已经尝试过 textNoSuggestions。此 inputType 只能与“text” inputType 组合。
        猜你喜欢
        • 2017-02-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多