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

Измените символ маски пароля EditText на звездочку (*)

Есть ли способ изменить текст пароля с точки (.) на звездочку (*).

Пароль вводится в edittext.

<EditText
        android:id="@+id/passWord1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:inputType="number"
        android:password="true"/>
4b9b3361

Ответ 1

Получил ответ с помощью ссылки, опубликованной Ram kiran

text.setTransformationMethod(new AsteriskPasswordTransformationMethod());


public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod {
@Override
public CharSequence getTransformation(CharSequence source, View view) {
    return new PasswordCharSequence(source);
}

private class PasswordCharSequence implements CharSequence {
    private CharSequence mSource;
    public PasswordCharSequence(CharSequence source) {
        mSource = source; // Store char sequence
    }
    public char charAt(int index) {
        return '*'; // This is the important part
    }
    public int length() {
        return mSource.length(); // Return default
    }
    public CharSequence subSequence(int start, int end) {
        return mSource.subSequence(start, end); // Return default
    }
}
};

Ответ 2

Вставьте текст редактирования в ваш XML файл,

<EditText
    android:id="@+id/passWordEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:inputType="textPassword"/>

и ваш файл класса идет дальше и получает findViewById из edittext и реализует для этого,

EditText edittext = (EditText)findViewById(R.id.passWordEditText);
edittext.setTransformationMethod(new AsteriskPasswordTransformationMethod());

и этот класс реализовать для этого,

public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return new PasswordCharSequence(source);
    }

    private class PasswordCharSequence implements CharSequence {
        private CharSequence mSource;
        public PasswordCharSequence(CharSequence source) {
            mSource = source; // Store char sequence
        }
        public char charAt(int index) {
            return '*'; // This is the important part
        }
        public int length() {
            return mSource.length(); // Return default
        }
        public CharSequence subSequence(int start, int end) {
            return mSource.subSequence(start, end); // Return default
        }
    }
};

Ответ 3

<EditText
        android:id="@+id/passWord1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:inputType="textPassword"//here is the change. check it once in your xml
        android:password="true"/>

В eclipse будут подсказки, когда вы нажимаете Ctrl + Space, когда вы перемещаете курсор на android:inputType. Затем вы можете увидеть список вариантов. там вы можете выбрать textPassword

Если вы хотите увидеть * вместо . затем проверьте этот Android: Asterisk Password Field

Ответ 4

Проверить ссылку ниже: -

Если вы хотите видеть * вместо. затем проверьте этот Android: Поле пароля Asterisk

http://codemanteau.com/post/code_11

Ответ 5

EditText.setTransformationMethod(new PasswordTransformationMethod());

Ответ 6

Для android: inputType существует тип пароля.

Ответ 8

Попробуйте это

android:inputType="textPassword"       

Ответ 9

Внедрить TextWatcher.

EditText e = (EditText)findViewById(R.id.url_field);
    e.addTextChangedListener(new CustomTextWatcher(e));

//

private class CustomTextWatcher implements TextWatcher {
    private EditText mEditText;

    public CustomTextWatcher(EditText e) { 
        mEditText = e;
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    public void afterTextChanged(Editable s) {
    }
}