getText()方法中的空指针异常[重复]

问题描述 投票:0回答:1

这是一个简单的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)

请帮助

java nullpointerexception null gettext
1个回答
0
投票

您需要执行空检查:

@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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.