В моем приложении у меня EditText
тип входа android:inputType="textPassword"
по умолчанию установлен по умолчанию. Он имеет CheckBox
справа от себя, который, когда отмечен, изменяет тип ввода этого EditText на NORMAL PLAIN TEXT. Код для этого
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Моя проблема в том, что когда этот флажок снят, он должен снова установить тип ввода на ПАРОЛЬ. Я сделал это, используя ...
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Но текст внутри этого текста редактирования все еще виден. И, к удивлению, когда я меняю ориентацию, он автоматически устанавливает тип ввода на ПАРОЛЬ, а текст внутри маркируется (отображается как пароль).
Есть ли способ добиться этого?
android
passwords
android-edittext
Раджкиран
источник
источник
mailEdt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
. Работает для меня.Ответы:
Просто для людей, у которых такая же проблема. Просто добавьте дополнительный атрибут к этому EditText программно, и все готово.
Для числового пароля (пин-код).
Также убедитесь, что курсор находится в конце текста в EditText. Потому что, когда вы меняете тип ввода, курсор будет автоматически установлен в начальную точку. Поэтому я предлагаю использовать следующий код:
При использовании привязки данных вы можете использовать следующий код
При использовании Kotlin,
источник
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
editText.getSelectionStart()
иeditText.getSelectionEnd()
с,setSelection(start, end)
чтобы избежать этой проблемы.используйте этот код, чтобы сменить пароль на текстовый и наоборот
полный пример кода см. http://www.codeproject.com/Tips/518641/Show-hide-password-in-a-edit-text-view-password-ty
источник
Метод выше действительно не работал для меня. Ответ ниже работает для 2.2 SDK.
Установить inputType для EditText?
источник
Еще один простой пример использования ImageView для переключения видимости с меньшим количеством кода, поскольку из-за одного присваивания InputType нам нужен только оператор равенства:
Замена:
С участием :
Даст тот же результат, но более короткое слово.
источник
источник
Это сработало для меня:
источник
Итак, после нескольких часов попыток, наконец, это реализовано. Ниже приведен код
Пояснения: - У меня есть кнопка с текстом по умолчанию, как шоу. После события onclick на нем проверяется, отображается ли текст кнопки. Если это шоу, то измените тип ввода, отрегулируйте положение курсора и установите новый текст как скрытый в нем.
Когда это скрыть ... делать наоборот, то есть скрывать пароль, настраивать курсор и устанавливать текст, как показано. И это все. Это работает как шарм.
источник
Для пользователей kotlin:
источник
Используйте этот код, чтобы сменить пароль на текстовый и наоборот. Этот код прекрасно работал для меня. Попробуй это..
источник
Это полный обработчик onClick для Image / Button, чтобы показать / скрыть пароль.
источник
edtPassword.getSelectionStart()
.В библиотеку поддержки версии 24.2.0 была добавлена функция переключения видимости пароля, позволяющая переключать пароль прямо из окна
EditText
без необходимостиCheckBox
.Вы можете сделать это в основном, сначала обновив версию своей библиотеки поддержки до 24.2.0, а затем установив
inputType
пароль наTextInputEditText
. Вот как это сделать:Вы можете получить больше информации о новой функции в документации разработчика для TextInputLayout .
источник
Начиная с библиотеки поддержки v24.2.0. Вы можете достичь этого очень легко
Что вам нужно сделать, это просто:
Добавьте библиотеку дизайна в ваши зависимости
Используйте
TextInputEditText
в сочетании сTextInputLayout
passwordToggleEnabled
атрибут заставит появиться переключение пароляВ свой корневой макет не забудьте добавить
xmlns:app="http://schemas.android.com/apk/res-auto"
Вы можете настроить переключение пароля с помощью:
app:passwordToggleDrawable
- Drawable для использования в качестве значка переключения видимости ввода пароля.app:passwordToggleTint
- Значок, используемый для переключения видимости ввода пароля.app:passwordToggleTintMode
- Режим смешивания, используемый для применения оттенка фона.Более подробная информация в документации TextInputLayout .
источник
Мой поиск аналогичного решения для Visual Studio / Xamarin привел меня к этой теме. Ниже то, что работало для меня с Xamarin. Обратите внимание, что эта реализация сохраняет
TYPE_TEXT_FLAG_NO_SUGGESTIONS
флаг при переключении между режимами.EditText et = FindViewById<EditText>(Resource.Id.ET);
Чтобы показать персонажей:
et.InputType = Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagNoSuggestions;
Чтобы скрыть персонажей:
et.InputType = Android.Text.InputTypes.TextVariationPassword | Android.Text.InputTypes.ClassText;
Чтобы установить позицию до конца:
int position = et.Text.Length;
et.SetSelection(position, position);
источник
if (edittext.getInputType() == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD )){ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD ); }else{ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD ); }
для Visual Studio / Xamarin ..?какая-то динамическая ситуация
holder.edit_pin.setInputType(InputType.TYPE_CLASS_NUMBER);
не сработает, так что лучше использовать и то и другоеПримечание: это подходит для случаев, когда вы используете динамические элементы управления, такие как arrayaapter
источник
После того, как вы
setInputType
в поле пароля, у вас будут проблемы с шрифтомВот мое решение для показать / скрыть пароль без проблемы шрифта
Примечание: я использую
InputType.TYPE_TEXT_VARIATION_PASSWORD
вместоInputType.TYPE_CLASS_TEXT
илиHideReturnsTransformationMethod
потому что я хочу, чтобы клавиатура отображала как текст, так и числоDEMO
источник
Я бы убрал
android:inputType="textPassword"
из вашего макета. Вот почему он переключается обратно на пароль, когда меняется ориентация. Потому что каждый раз, когда ориентация меняется, вид воссоздается.Что касается первой проблемы, попробуйте это:
в основном очищение текста перед изменением типа ввода и последующим добавлением его обратно.
источник
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
сразу после инициализации, но увы!Завершите код, если вы хотите применить видимость пароля в тексте редактирования пароля.
Создайте ручку [Любой нарисованный или Флажок]
нажмите или отметьте / снимите флажок, напишите это:
Не забудьте написать эту строку:
Сбрасывает курсор в конец строки.
источник
Я изменяю тип ввода на моем флажке, поэтому на моем
OnCheckedChangeListener
я делаю:И это наконец-то сработало.
Похоже, логическая проблема с
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
. Инвертируйте флаг, и это должно решить проблему.В твоем случае:
источник
Используйте метод Transformation:
Прятаться:
Видимый:
Вот и все.
источник
Просто дополнительный комментарий к правильному ответу, предоставленному @Rajkiran, вы можете добавить
в НОРМАЛЬНОЕ состояние ввода, так что пользователи не будут раздражены самовнушением клавиатуры
источник
final int [] count = {0};
источник
Основываясь на ответах neeraj t и Everton Fernandes Rosario, я написал в Kotlin, где
password
находится идентификатор EditText в вашем макете.источник