es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo reparar el intento de invocar el método virtual ‘java.lang.String android.os.Bundle.getString(java.lang.String)’ en una referencia de objeto nula.

Quiero actualizar el nombre de la cuenta cuando el usuario está en la actividad de inicio.
Vi un tutorial en YouTube e hice lo que se muestra en el video, pero tengo un error:

Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference

Estos son todos los códigos que usé:

Esto está en la actividad de inicio:


continueBtn = findViewById(R.id.continueBtn);
continueBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String Data = accountNameSignup.getText().toString();
Intent intent = new Intent(GettingStarted.this, HomeMenu.class);
intent.putExtra("abc", Data);
startActivity(intent);
finish();
}
});

Esto está en el perfil de la cuenta:


accountName = findViewById(R.id.accountName);
Bundle bn = getIntent().getExtras();
String updateName = bn.getString("abc");
accountName.setText(String.valueOf(updateName));

El usuario tendrá que pasar por la actividad de inicio primero, donde ingresará los detalles personales. Después de eso, se redireccionará al menú del tablero. Los otros menús funcionan bien, pero cuando hago clic en el menú de perfil, la aplicación se bloquea y me da el error de arriba.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference sugiere que bn es nulo, lo que significa que el bundle pasado desde la Actividad de Inicio no está siendo recibido por la Actividad de Cuenta de Perfil.

    Para solucionar este error, asegúrate de que la clave utilizada para poner los datos en el bundle en la Actividad de Inicio coincida con la clave utilizada para recuperar los datos en la Actividad de Cuenta de Perfil.

    En este caso, se utiliza la clave “abc”. Verifica que esta clave se esté utilizando de manera consistente y correctamente en ambas actividades.

    Si la clave es correcta, verifica si el bundle es nulo antes de recuperar el valor de la cadena para evitar que la aplicación se bloquee.

    Aquí hay un ejemplo de cómo hacer esto:

    Bundle bn = getIntent().getExtras();
    if (bn != null) {
        String updateName = bn.getString("abc");
        accountName.setText(String.valueOf(updateName));
    } else {
        // maneja el caso donde el bundle es nulo
    }
    

    Después de hacer estos cambios, ejecutar la aplicación debería actualizar correctamente el nombre de la cuenta cuando el usuario está en la Actividad de Inicio.

Comments are closed.