运行应用程序时的Intent函数崩溃了

时间:2018-03-08 12:59:57

标签: validation firebase android-intent firebase-authentication

当点击此文本视图时,应用程序崩溃并且没有更改从主要活动切换到另一个活动的活动如何解决它?

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText etEmail;
private EditText etPassword;
private TextView tvLogin;
private TextView tvSignup;
private Button btnSignin, btMr;

private FirebaseAuth firebaseAuth;

AwesomeValidation awesomeValidation;


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

    awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);

    updateUI();

    firebaseAuth = FirebaseAuth.getInstance();

}

private void updateUI() {
    etEmail = (EditText) findViewById(R.id.etEmail);
    tvSignup = (TextView) findViewById(R.id.tvSignup);
    etPassword = (EditText) findViewById(R.id.etPassword);
    tvLogin = (TextView) findViewById(R.id.tvLogin);
    btnSignin = (Button) findViewById(R.id.btnLogin);

    tvSignup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            signup();
        }
        public void signup() {
            Intent i = new Intent(MainActivity.this, Registration.class);
            startActivity(i);
        }
    });

这里我使用了很棒的验证来验证我的表单但是在运行应用程序时显示了toast消息,但是没有注册用户来激活它验证我的表单但是没有注册

    String regexPassword = "(?=.*[a-z])(?=.*[A-Z])(?=.*[\\d])(?=.*[~`!@#\\$%\\^&\\*\\(\\)\\-_\\+=\\{\\}\\[\\]\\|\\;:\"<>,./\\?]).{8,}";
    awesomeValidation.addValidation(MainActivity.this, R.id.etEmail, android.util.Patterns.EMAIL_ADDRESS, R.string.etEmailerr);
    awesomeValidation.addValidation(MainActivity.this, R.id.etPassword, regexPassword, R.string.etPasserr);

    btnSignin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (awesomeValidation.validate()) {
                Toast.makeText(MainActivity.this, "Data Recieved Successfully", Toast.LENGTH_SHORT).show();

            } else {
                Toast.makeText(MainActivity.this, "ERROR", Toast.LENGTH_SHORT).show();
            }
        }


    });
}

此部分将用户注册到firebase,但是在添加了这个真棒验证之后这不起作用app显示来自验证的Toast消息并且不注册或更改活动我如何合并两者以便我的表单得到验证并且还获得注册到我的firebase auth

public void btnLogin_Click(View v) {
    final ProgressDialog progressDialog = ProgressDialog.show(MainActivity.this, "Please Wait....", "Processing...", true);

    (firebaseAuth.signInWithEmailAndPassword(etEmail.getText().toString(), etPassword.getText().toString()))
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    progressDialog.dismiss();

                    if (task.isSuccessful()) {
                        Toast.makeText(MainActivity.this, "LOGIN SUCCESSFULL", Toast.LENGTH_LONG).show();
                        Intent signin = new Intent(MainActivity.this, Dashboard.class);
                        startActivity(signin);
                    } else {
                        Log.e("ERROR", task.getException().toString());
                        Toast.makeText(MainActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show();
                    }
                }
            });
}

@Override
public void onClick(View view) {
}

}

1 个答案:

答案 0 :(得分:0)

这是由于正则表达式功能。 activity1 regex中使用的值在另一个activity2中有所不同,因为intent无法从一个activity切换到另一个activity。 在所有链接的活动中,传递正则表达式的值应该相同。