我看到我认为使用带有 inputType=numberDecimal 的 EditText 的奇怪行为。
在我的 Galaxy Nexus(使用 Google 键盘)上,当我点击 editText 字段时,通常会出现下划线:
它几乎看起来可以是自动更正、自动完成或文本建议,但这对于 numberDecimal 输入类型没有意义。我已经尝试过 textNoSuggestions 并且正如预期的那样,这并没有删除下划线。
如果存在,这些下划线目前正在给我带来问题。我在editText上附加了一个textwatcher作为侦听器。点击该字段后,只要出现此下划线并且光标位于屏幕截图中:
当用户输入 2 时,onTextChanged 收到:0.002。这是对的。然后我在 afterTextChanged 中将此数字格式化为 0.02。
此时如果用户输入 3,onTextChanged 会收到:0.020023。这是不正确的。出于某种原因,“002”被附加到 3 之前的 editText 值中。这显然会抛出我在 afterTextChanged 中的格式化逻辑。
我的 textwatcher 逻辑已经工作了很长时间,直到最近才开始出现这个问题。每当我移动光标时,使下划线消失,然后我看不到 onTextChanged 接收“不正确”值的问题。
至于使下划线开始发生的变化,我相信我已将其范围缩小到 Google 键盘应用程序。当我使用 Google 键盘版本 1.1.1881.801980 时,我看到了这个问题。我卸载了更新并回滚到版本 4.2.2-573038,并且在该版本中,从来没有任何下划线,因此我的 textwatcher 没有问题。
所以,我的问题:
有谁知道这个下划线在 numberDecimal 字段中应该是什么?这是合法的还是这是一个错误?
错误与否,有人知道如何防止用户点击该字段时出现此下划线吗?