我在Android中有一个用于密码字段的编辑文本。编辑文本的输入类型是密码。单击按钮时密码。我已经使用Android中的运动事件实现了"显示密码"部分。BELOW是正常工作的代码:
EditText passwordET;
Button showPassword;
passwordET = (EditText) findViewById(R.id.passwordET);
showPassword = (Button) findViewById(R.id.showpasswordBtn);
showPassword.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
passwordET.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
return true;
case MotionEvent.ACTION_UP:
passwordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
return true;
}
return true;
}
});
当用户单击按钮时,显示密码,并且在删除按钮触摸事件时,上面的代码正常工作,文本再次变为密码字段。但是,我想要的是,如果单击了一次按钮,则编辑文本将显示密码,并且密码将保留到再次单击按钮之前。再次输入密码。有人可以让我知道如何继续吗?
使用以下代码:
定义一个标志,
boolean isPassWordShowing = false;
ShowPassword按钮的单击:
showPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isPassWordShowing)
{
passwordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
isPassWordShowing = false;
}
else
{
passwordET.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
isPassWordShowing = true;
}
}
});