这是一个简单的firebase注册和登录应用程序,但是我在这里呆了2天,找不到解决方案。getText()方法中显示一个空指针异常。
请考虑代码:-
public class RegisterActivity extends AppCompatActivity {
private TextInputLayout mDisplayName;
private TextInputLayout mEmail;
private TextInputLayout mPassword;
private Button mCreateBtn;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mDisplayName = (TextInputLayout) findViewById(R.id.reg_display_name);
mEmail = (TextInputLayout) findViewById(R.id.reg_Email);
mPassword = (TextInputLayout) findViewById(R.id.reg_Password);
mCreateBtn = (Button) findViewById(R.id.reg_create_button);
mAuth = FirebaseAuth.getInstance();
mCreateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String display_name = mDisplayName.getEditText().getText().toString();
String email = mEmail.getEditText().getText().toString();
String password = mPassword.getEditText().getText().toString();
registerUser(display_name,email,password);
}
private void registerUser(String display_name,String email, String password){
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete( Task<AuthResult> task) {
if(task.isSuccessful()){
Intent main_Intent = new Intent(RegisterActivity.this,MainActivity.class);
}else{
Toast.makeText(RegisterActivity.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
}
但是当我运行代码时,它得到空指针异常
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.example.lapitchat.RegisterActivity$1.onClick(RegisterActivity.java:41)
请帮助
您需要执行空检查:
@Override
public void onClick(View v) {
if (mDisplayName.getEditText() != null) {
String display_name = mDisplayName.getEditText().getText().toString();
String email = mEmail.getEditText().getText().toString();
String password = mPassword.getEditText().getText().toString();
registerUser(display_name,email,password);
}
}