Android Lollipop EditText:自动完成功能不适用于电子邮件地址

Des*_*erd 5 android autocomplete android-edittext android-5.0-lollipop

我有一堆EditTexts注册片段.

在奇巧及以下,任何EditTextinputType是一个电子邮件地址,将使用系统的自动完成,这是方便了用户投入他们的电子邮件地址.

然而,在Lollipop(Nexus 4上的5.0.1,它的价值),它拒绝使用自动完成.这是我设置输入类型的代码:

mEditText.setInputType(InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
                | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT));
Run Code Online (Sandbox Code Playgroud)

下面的代码只是将每个单词的第一个字母大写,而不是将输入设置为电子邮件地址,导致AutoComplete在所有API级别上工作(即使我设置的标志是自动更正而不是自动完成):

mEditText.setInputType(InputType.TYPE_CLASS_TEXT
            | InputType.TYPE_TEXT_FLAG_CAP_WORDS
            | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
Run Code Online (Sandbox Code Playgroud)

这是非常令人困惑的,因为查看TYPE_TEXT_FLAG_AUTO_CORRECT的文档,它看起来应该实际上应该禁用自动完成.

TL; DR:你怎么在Lollipop EditText上启用自动完成功能,你希望得到一个电子邮件地址?

Bry*_*ern 2

Nick Butcher 在这方面有一篇很棒的文章