Android 的输入框(EditText)设置密码可见/不可见切换的最简单方法

原创博客,转载请注明出处,欢迎转载。

使用Java代码修改EditText的密码切换输入模式的时候,密码显示后,再修改为隐藏模式就不起作用了。下面这两行代码是错误示范↓

editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

靠上面两行代码来实现EditText不可行,错误示范完毕。

 

正确做法:

先上效果图,Demo代码在后面

Android 的输入框(EditText)设置密码可见/不可见切换的最简单方法_第1张图片

1.判断输入框目前是否显示密码:

et_password.getInputType() == 128 //如果editText.getInputType() 的值为128则代表目前是明文显示密码,为129则是隐藏密码

2.设置输入框输入模式为隐藏密码/显示密码:

et_password.setInputType(129);//设置为隐藏密码
et_password.setInputType(128);//设置为显示密码

主要代码就以上这三行,一行查询当前模式,两行设置输入模式。

 

注:以上知识来源于的网友:https://blog.csdn.net/dawanganban/article/details/23374187#commentsedit博客底下两位网友的评论,非常感谢:

Android 的输入框(EditText)设置密码可见/不可见切换的最简单方法_第2张图片

 

 

 

以下是我自己写的(上面效果图的Demo)代码,有一个按钮,按下切换密码输入框的显示模式:

xml布局文件:




    

    

 

java代码:

 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText et_password = (EditText) findViewById(R.id.et_password);
        final Button bt_change_mode = (Button) findViewById(R.id.bt_change_mode);
        bt_change_mode.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(et_password.getInputType() == 128){//如果现在是显示密码模式
                    et_password.setInputType(129);//设置为隐藏密码
                    bt_change_mode.setText("密码不可见");
                }else {
                    et_password.setInputType(128);//设置为显示密码
                    bt_change_mode.setText("密码可见");
                }
                et_password.setSelection(et_password.getText().length());//设置光标的位置到末尾
            }
        });

 

如果我的文章对您有帮助,就请客官给个赞吧

THE END!

 

你可能感兴趣的:(Android)