我在应用中使用androidx.appcompat.widget.AppCompatEditText
视图来编写密码。我想将实符号替换为项目符号。为此,我使用下一个代码。这是视图
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/regPasswordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/password"
android:imeOptions="actionNext"
android:inputType="textPassword"
android:lines="1"
android:maxLines="1"
android:scrollHorizontally="true"
android:textColor="@color/white"
android:textColorHint="@color/text_gray"
android:textSize="14sp"/>
用符号符号代替符号,我使用:
regPasswordEditText.transformationMethod = 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;
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
}
}
}
但是,当我在edittext字段中写入文本时,我看到的是方形项目符号而不是圆形项目符号,就像在图像上一样:
如何修复此错误?
答案 0 :(得分:0)
尝试使用
TextInputEditText
或只是EditText
答案 1 :(得分:0)
对charAt方法进行如下更改:
public char charAt(int index) {
return 0x00002022; // This is the important part
}
顺便说一句,尝试使用“密码”类型的EditText-它会自动将项目符号替换为密码符号。