0

如何在用户离开 EditBox 之前对密码进行非混淆处理,然后再对其进行混淆处理?我希望用户在输入密码时能够看到密码,但在输入密码后立即对其进行混淆并转到其他字段。

4

2 回答 2

2

我认为 android 没有内置功能来执行此操作,但您可以通过子类化 TextView 并更改 onFocusChanged 方法中的字符来轻松完成此操作。将密码字符存储在变量中,并在窗口失去焦点时用点替换它们。当它获得焦点时,摆脱点并将字符放回原处。

于 2012-07-06T19:01:01.617 回答
2

您可以使用PasswordTransformationManager类和OnFocusChangedListener. 试试这个:

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
    @Override
    public void onFocusChange(View view, boolean focused)
    {
        if(focused)
           ((EditText)view).setTransformationMethod(null);
        else
           ((EditText)view).setTransformationMethod(PasswordTransformationMethod.getInstance());
    }
});

这基本上与设置 xml 属性相同android:password="true",但仅在 EditText 没有焦点时。

于 2012-07-06T19:16:38.487 回答