如何在用户离开 EditBox 之前对密码进行非混淆处理,然后再对其进行混淆处理?我希望用户在输入密码时能够看到密码,但在输入密码后立即对其进行混淆并转到其他字段。
问问题
127 次
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 回答