使用密码输入时的Edittext字段不会隐藏密码

时间:2017-06-21 10:14:36

标签: java android

在使用密码输入时,android中的Edittext字段不会隐藏密码。它以前工作过,但我无法弄清楚出了什么问题或改变了什么。这是源代码:

XML

<EditText
    android:id="@+id/login_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:background="@drawable/rectangular_border_edittext"
    android:hint="@string/enter_password"
    android:inputType="textPassword"
    android:maxLines="1"
    android:padding="8dp" />

JAVA

   password.setSingleLine();
    password.setImeOptions(EditorInfo.IME_ACTION_NEXT);   password.setImeActionLabel(getResources().getString(R.string.goButton), EditorInfo.IME_ACTION_NEXT);
    password.setOnEditorActionListener((v, actionId, event) -> {
                if (actionId == EditorInfo.IME_ACTION_NEXT) {
                    checkPasswordAndSend();
                }
                return false;
            });

如果有人遇到类似问题,请告诉我。另外我想告诉你我正在使用最新版本的支持库。(25.3.1)。

2 个答案:

答案 0 :(得分:3)

所以我明白了。密码中的maxlines属性倾向于此行为。从xml中删除maxLines = 1并从java中删除setSingleLine,一切都恢复正常。不知道为什么会这样,但只是有效。 希望这有助于某人。

答案 1 :(得分:2)

XML

中删除此行
android:maxLines="1"

你应该有这个:

<EditText
android:id="@+id/login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/rectangular_border_edittext"
android:hint="@string/enter_password"
android:inputType="textPassword"
android:padding="8dp" />

并在您的 JAVA 中保留此行,例如:

password.setSingleLine();