从意图中获取对象抛出 null

Get object from intent throws null

我正在尝试使用 intent 将一个对象传递给另一个 class。该对象实现了 Parcelable。

问题是,当我尝试获取属性时,它没有获取对象,它说它为空。

但是当我执行 intent.getExtras()System.out.println 时:

捆绑包[{usuariocreado =com.example.frpi.repasando.Usuario@4ed1d39}]

它真的在那里!

if (this.getIntent().getExtras() != null) {
    Usuario usuariocreado = intent.getParcelableExtra("usuariocreado");
    usuariocreado.getNombreUsuario();
} else {
    System.out.println("Mierda");
}

这是 MainActivty 上接收意图的代码。

NombreUsuario  = (EditText) findViewById(R.id.UsuarioRegister);
PasswordPrimero  = (EditText) findViewById(R.id.PasswordPrimero);

Usuario obj = new Usuario(String.valueOf(NombreUsuario.getText()), String.valueOf(PasswordPrimero.getText()));

Intent intent = new Intent(getBaseContext(), MainActivity.class);
Usuario usuariocreado = new Usuario(String.valueOf(NombreUsuario.getText()), String.valueOf(PasswordPrimero.getText()));
intent.putExtra("usuariocreado ", usuariocreado);
startActivity(intent);

这是发送意图的 SecondActivity 上的代码。

我做错了什么??

谢谢!

public class Usuario  implements Parcelable {


    public Usuario(String nombreUsuario, String passwordPrimero) {
        NombreUsuario = nombreUsuario;
        PasswordPrimero = passwordPrimero;
    }

    /**
     * NombreUsuario : Paco
     * PasswordPrimero : Example
     */

    private String NombreUsuario;
    private String PasswordPrimero;

    protected Usuario(Parcel in) {
        NombreUsuario = in.readString();
        PasswordPrimero = in.readString();
    }

    public static final Creator<Usuario> CREATOR = new Creator<Usuario>() {
        @Override
        public Usuario createFromParcel(Parcel in) {
            return new Usuario(in);
        }

        @Override
        public Usuario[] newArray(int size) {
            return new Usuario[size];
        }
    };

    public String getNombreUsuario() {
        return NombreUsuario;
    }

    public void setNombreUsuario(String NombreUsuario) {
        this.NombreUsuario = NombreUsuario;
    }

    public String getPasswordPrimero() {
        return PasswordPrimero;
    }

    public void setPasswordPrimero(String PasswordPrimero) {
        this.PasswordPrimero = PasswordPrimero;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(NombreUsuario);
        dest.writeString(PasswordPrimero);
    }
}

您必须使用 Usuario

来投射 intent.getParcelableExtra("usuariocreado")

替换

Usuario usuariocreado = intent.getParcelableExtra("usuariocreado");

Usuario usuariocreado = ((Usuario) intent.getParcelableExtra("usuariocreado"));