Подтвердить что ты не робот

Android: Как установить свойство пароля в текстовом редакторе?

Мне нужно создать форму входа в систему с полями "имя пользователя" и "два раза" и "отменить" в приложении для Android.

Я использую диалог предупреждения с edittext внутри этого.

Это код, который я использовал для создания пароля edittext.

     final EditText Password = new EditText(this);
     Password.setGravity(Gravity.CENTER);
     Password.setHint("Password");
     Password.setWidth(200);

     Password.setTransformationMethod(new PasswordTransformationMethod());
     login_alert.addView(Password);

Моя проблема заключается в том, что вместо "точек" отображается обычный текст, когда я открываю программную клавиатуру для редактирования пароля. (Он отображается как точки, если не в режиме мягкой клавиатуры)

Может ли кто-нибудь предложить решение?

4b9b3361

Ответ 1

Password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

Это работает для меня.
Но вы должны взглянуть на комментарий Октавиана Дамиэна, он прав.

Ответ 2

Это устарело

В xml EditText iclude этот атрибут: android: password = "true"

Edit

android:inputType="textPassword"

Ответ 3

Здесь новый способ ввода точек в пароле

<EditText
    android:id="@+id/loginPassword"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textPassword"
    android:hint="@string/pwprompt" /

добавить андроид: inputType = "textPassword"

Ответ 4

Вам нужно использовать PasswordTransformationMethod.getInstance() вместо new PasswordTransformationMethod().

Ответ 5

Единственный способ, который работал у меня с использованием кода (а не XML), - это следующий:

etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());

Ответ 7

Я обнаружил при этом, что для того, чтобы установить значение силы тяжести в центр, и покажите подсказку своего пароля, когда using inputType, android:gravity="Center" должен быть в конце строки XML.

<EditText android:textColor="#000000" android:id="@+id/editText2" 
    android:layout_width="fill_parent" android:hint="Password" 
    android:background="@drawable/rounded_corner" 
    android:layout_height="fill_parent" 
    android:nextFocusDown="@+id/imageButton1" 
    android:nextFocusRight="@+id/imageButton1" 
    android:nextFocusLeft="@+id/editText1"
    android:nextFocusUp="@+id/editText1" 
    android:inputType="textVisiblePassword" 
    android:textColorHint="#999999" 
    android:textSize="16dp" 
    android:gravity="center">
</EditText>

Ответ 8

Мой поиск аналогичного решения для Visual Studio 2015/Xamarin приведет меня к этой теме. При настройке EditText.InputType на Android.Text.InputTypes.TextVariationVisiblePassword правильно спрятал пароль во время ввода пользователя, он не "скрывал" пароль, если он был видимым до того, как была отображена макет EditText (до того, как пользователь отправил свою запись пароля). Чтобы скрыть видимый пароль после того, как пользователь отправит свой пароль, и будет выделен макет EditText, я использовал EditText.TransformationMethod = PasswordTransformationMethod.Instance, как было предложено LuxuryMode.

Ответ 9

Чтобы включить пароль в EditText, нам нужно будет установить атрибут "inputType" в xml файле. Если мы используем только EditText, мы будем вводить тип ввода в EditText, как указано в следующем коде.

                    <EditText
                    android:id="@+id/password_Edit"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:hint="password"
                    android:imeOptions="actionNext"
                    android:inputType="textPassword"
                    android:maxLength="100"
                    android:nextFocusDown="@+id/next"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

Атрибут пароля включен

 android:inputType="textPassword"

Но если мы реализуем Password EditText с Material Design (с поддержкой библиотеки Design Design), тогда мы будем писать код, как показано ниже.

<android.support.design.widget.TextInputLayout
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/txtInput_currentPassword"
                android:layout_width="match_parent"
                app:passwordToggleEnabled="false"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/password_Edit"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:hint="@string/hint_currentpassword"
                    android:imeOptions="actionNext"
                    android:inputType="textPassword"
                    android:maxLength="100"
                    android:nextFocusDown="@+id/next"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </android.support.design.widget.TextInputLayout>

@Примечание: в Android SDK 24 и выше "passwordToggleEnabled" по умолчанию имеет значение true. Поэтому, если у нас есть таможенная обработка функции show/hide в пароле EditText, тогда нам нужно будет установить значение false в коде, как указано выше.

app:passwordToggleEnabled="true"

Чтобы добавить строку выше, нам нужно добавить строку ниже в корневом макете.

xmlns:app="http://schemas.android.com/apk/res-auto"