在Android按钮中实现运动事件,以使用替代按钮点击以递观显示密码



我在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;
            }

        }
    });

最新更新