androidstudio通过监听EDITTEXT密码动态输入并且通过progressbar实现密码强度的显示条

androidstudio通过监听EDITTEXT密码动态输入并且通过progressbar实现密码强度的显示条


xml文件:(我目前使用的是LinearLayout)

java文件:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_enroll);

    EditText enrollpassword1 = (EditText) findViewById(R.id.enrollpassword1);

    ProgressBar pwdstrlevel = findViewById(R.id.progressbar);

    enrollpassword1.addTextChangedListener(new TextWatcher() {

@Override

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

Log.d("TAG","beforeTextChanged--------------->");

        }

@Override

        public void afterTextChanged(Editable s) {

Log.d("TAG","afterTextChanged--------------->");

        }

@Override

        public void onTextChanged(CharSequence s, int start, int before, int count) {

Log.d("TAG","onTextChanged--------------->");

            String str =enrollpassword1.getText().toString();

            if(str.matches(("^[a-zA-Z]\\d{5,10}$")) ){

pwdstrlevel.setProgress(20);

                Toast.makeText(enroll.this,"密码强度:很弱",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\D{5,10}$")){

pwdstrlevel.setProgress(20);

                Toast.makeText(enroll.this,"密码强度:很弱",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("[a-zA-Z]{6,11}$")){

pwdstrlevel.setProgress(20);

                Toast.makeText(enroll.this,"密码强度:很弱",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\W{5,10}$")){

pwdstrlevel.setProgress(35);

                Toast.makeText(enroll.this,"密码强度:中下",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\d\\W]{5,10}$")){

pwdstrlevel.setProgress(50);

                Toast.makeText(enroll.this,"密码强度:中",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\D\\W]{5,10}$")){

pwdstrlevel.setProgress(50);

                Toast.makeText(enroll.this,"密码强度:中",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\w{5,10}$")){

pwdstrlevel.setProgress(35);

                Toast.makeText(enroll.this,"密码强度:中下",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\w\\W]{5,10}$")){

pwdstrlevel.setProgress(50);

                Toast.makeText(enroll.this,"密码强度:中",Toast.LENGTH_SHORT).show();

            }

else if(str.matches(("^[a-zA-Z]\\d{11,}$")) ){

pwdstrlevel.setProgress(50);

                Toast.makeText(enroll.this,"密码强度:中",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\D{11,}$")){

pwdstrlevel.setProgress(50);

                Toast.makeText(enroll.this,"密码强度:中",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("[a-zA-Z]{12,}$")){

pwdstrlevel.setProgress(75);

                Toast.makeText(enroll.this,"密码强度:中上",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\W{11,}$")){

pwdstrlevel.setProgress(75);

                Toast.makeText(enroll.this,"密码强度:中上",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\d\\W]{11,}$")){

pwdstrlevel.setProgress(75);

                Toast.makeText(enroll.this,"密码强度:中上",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\D\\W]{11,}$")){

pwdstrlevel.setProgress(75);

                Toast.makeText(enroll.this,"密码强度:中上",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z]\\w{11,}$")){

pwdstrlevel.setProgress(75);

                Toast.makeText(enroll.this,"密码强度:中上",Toast.LENGTH_SHORT).show();

            }

else if(str.matches("^[a-zA-Z][\\w\\W]{11,}$")){

pwdstrlevel.setProgress(100);

                Toast.makeText(enroll.this,"密码强度:强",Toast.LENGTH_SHORT).show();

            }

else{

pwdstrlevel.setProgress(0);

                Toast.makeText(enroll.this,"密码格式错误",Toast.LENGTH_SHORT).show();

            }

}

});

}



对于输入两次密码的比较可以自己补写。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容