Только для людей, у которых такая же проблема.Просто добавьте дополнительный атрибут к этому EditText программным путем, и все готово.
password.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
Кроме того, убедитесь, что курсор находится в конце текста в EditText.Потому что, когда вы меняете тип ввода, курсор будет автоматически установлен в начальную точку.Поэтому я предлагаю использовать следующий код:
et_password.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
et_password.setSelection(et_password.getText().length());
При использовании привязки данных вы можете использовать следующий код
<data>
<import type="android.text.InputType"/>
.
.
.
<EditText
android:inputType='@{someViewModel.isMasked ?
(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD) :
InputType.TYPE_CLASS_TEXT }'
При использовании Kotlin,
password.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD