Измените символ маски пароля 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"/>
Ответы
Ответ 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 существует тип пароля.
Ответ 7
Посетите этот вопрос stackoverflow, он ответит на ваш вопрос
Как сменить поле пароля на столбцы diplay вместо точек
Ответ 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) {
}
}