为什么EditText在输入由"android:digits"属性定义的不允许的字符时重复文本?

tat*_*igo 6 android android-edittext

ActivityEditText定义如下:

<EditText 
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:digits="0123456789.:"
    />
Run Code Online (Sandbox Code Playgroud)

允许的输入应该是.,:numbers.但是如果在EditText空时键入不允许的char,则文本开始重复.

例如,假设EditText为空,请键入以下序列:abc123.

在我的设备上结果是1112123,但预期结果应该是正确的123.

因为这应该尽可能简单,我不想使用InputFilter.

tat*_*igo 6

事实上,这与( DigitsKeyListener )、the和 currentInputFilter的默认值有关。android:digitsandroid:inputType="text"Keyboard

使用时键盘建议可能会很混乱android:digits。由于我不需要针对此特定的键盘建议,因此EditText我将其更改android:inputTypetextNoSuggestions,现在它可以按预期工作。

  • 在某些三星设备上,textNoSuggestions 无法正常工作。在这种情况下,您可以尝试 android:inputType="textVisiblePassword"。这不是正确的方法,但它确实有效。 (6认同)