首先需要一个touch监听事件
这里可以看到,有一个我注释的地方,是消除特殊样式,如果不这样,你会发现一开始密码是*****
后来你经过明文密文二次转换后,再回来看,就变成了* * * * * *这个样子。所以这一句还蛮重要的,也是我搜了好久看到的解决方法
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://按住事件发生后执行代码的区域
{
pwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
break;
}
case MotionEvent.ACTION_UP://松开事件发生后执行代码的区域
{
pwd.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
pwd.setTypeface(Typeface.DEFAULT);//消除特殊样式
break;
}
default: break;
}
return true;
}
});