从intent获取对象将抛出null



我正试图使用intent将一个对象传递给另一个类。该对象实现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"));

最新更新