Самый надежный подход к избавлению от автозаполнения, который я нашел, заключается в использовании
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
в вашем элементе управления EditText. Как Чарли сообщил в другом ответе на этой странице,
android:inputType="textVisiblePassword"
является XML-версией этого флага.
Вы можете объединить этот флаг с
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Я использовал InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS без InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, который работал для большинства телефонов, но затем я наткнулся на телефон Samsung, для которого все еще получал автозаполнение.
Android программно отключает автозаполнение / автозаполнение для EditText в эмуляторе
, который предложил использовать InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
Я попробовал это (вместе с InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS), и это сработало. Вы можете понять, почему даже телефон, который не может понять, что вы не хотите автозаполнения, будет иметь , чтобы разрешить его отключение для поля пароля. Если не затаить дыхание, это может быть лучшим способом получить то, что мы хотим от таких телефонов.
На некоторых моих устройствах этот флаг слегка изменил шрифт - наиболее заметно, чтобы более четко отличать ноль (0) от Oh (O), что, очевидно, было бы важно для отображения пароля. Но, по крайней мере, это сработало, и новый шрифт не был непривлекательным.
Несмотря на то, что пост, на котором я нашел это предложение, был старым, телефон, на котором я тестировал, был очень недавним - Samsung Galaxy Note II (SPH-L900) с Android 4.1.2 от Sprint. Была выбрана клавиатура «Samsung Keyboard», и, по-видимому, это было по умолчанию для этого телефона, когда клиент получил его от Sprint. Так что эта проблема, по-видимому, сохраняется на протяжении многих лет, по крайней мере, для некоторых важных телефонов Samsung.
Для тех из вас, кто, как и я, не имеет тестового устройства Samsung, это может быть важной информацией.