带有inputType numberDecimal的EditText具有下划线

时间:2013-09-24 11:31:10

标签: android android-softkeyboard

我看到我认为使用带有inputType = numberDecimal的EditText的奇怪行为。

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

enter image description here

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

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

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

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

  3. 我的textwatcher逻辑已经工作了很长时间,并且最近才开始出现这个问题。任何时候我移动光标,使下划线消失,然后我发现onTextChanged没有收到“错误”值的问题。

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

    所以,我的问题:

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

    是否有错误,是否有人知道当用户使用该字段时如何防止此下划线出现?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

设置

  android:inputType="textNoSuggestions"

答案 2 :(得分:0)

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

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

mgr.restartInput(editText);

答案 3 :(得分:0)

此问题已通过Google键盘应用版本2.0.18933.905102a的最新更新修复。