如何在android中实现密码验证

时间:2017-05-25 10:17:28

标签: java android validation android-studio passwords

我想在此添加密码验证,但在获取它时出现问题,我想要一个密码模式,其中包括至少一些 (number of characters, special characters, lowercase letters, uppercase letters) 这种模式。但我无法解决这个问题,请帮忙。

我正在使用android studio

public class SignUp extends MainActivity {
    private EditText et_name, et_email, et_password, et_cpassword;
    private String name, email, password, cpassword;
    Button signupbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sign_up_form);
    et_name = (EditText) findViewById(R.id.name);
    et_email = (EditText) findViewById(R.id.Email);
    et_password = (EditText) findViewById(R.id.Password);
    et_cpassword = (EditText) findViewById(R.id.Confirm_Password);
    signupbtn = (Button) findViewById(R.id.Signbtn);
    signupbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            register();
        }
    });
}

public void register() {
    initialise();
    if (!validate()) {
        Toast.makeText(this, "Sign up Failed", Toast.LENGTH_SHORT).show();
    } else {
        onSignUpSuccess();
    }
}

public void onSignUpSuccess() {
    Intent intent = new Intent(SignUp.this, HomePage.class);
    startActivity(intent);
    finish();
}

public boolean validate() {
    boolean valid = true;
    if (name.isEmpty() || name.length() > 32) {
        et_name.setError("please enter valid name");
        valid = false;
    }
    if (email.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
        et_email.setError("please enter valid Email");
        valid = false;
    }
    if (password.isEmpty() )
        et_password.setError("please enter a valid password");
    return valid;
}
public void initialise(){
    name = et_name.getText().toString().trim();
    email = et_email.getText().toString().trim();
    password = et_password.getText().toString().trim();
    cpassword = et_cpassword.getText().toString().trim();
}
}

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用轮询。 实际上,您可以通过JavaScript设置间隔,并在该间隔内启动AJAX请求到您的服务器以获取数据,如果需要因为数据已更改,只需刷新您的表。 所以在JS中这样的事情:

// interval of one minute
setInterval(function() {
  // starts the AJAX request
  // get the response
 // if something has changed, update the table
}, 60 * 1000);

即使这是最简单的方法,它实际上也不是最好的方法,因为你将拥有一个始终向服务器发起请求的功能,即使没有任何事情发生。

最佳解决方案是设置Web套接字,并在某些数据发生变化时直接从服务器接收通知。

看来你还有django已经做过的事,但我不是它的专家,所以也许你可以看一下这篇文章:

https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django