Android Parcelable String null

时间:2014-09-02 17:21:48

标签: android string parcelable

我将一个物体从一个物体发送给另一个物体。这个班是:

public class Reparacion implements Parcelable {

private int tipo;
private int estado;
private int id;

private String razonSocial;
private String direccion;
private String contacto;
private String telefono;
private String detalle;

public Reparacion() {

}

public Reparacion(int tipo, int estado, int id, String razSoc, String dir,
        String contacto, String tfno, String detalle) {
    this.tipo = tipo;
    this.estado = estado;
    this.id = id;
    this.razonSocial = razSoc;
    this.direccion = dir;
    this.contacto = contacto;
    this.telefono = tfno;
    this.detalle = detalle;
}

public String getContacto() {
    return contacto;
}

public void setContacto(String contacto) {
    this.contacto = contacto;
}

public String getTelefono() {
    return telefono;
}

public void setTelefono(String telefono) {
    this.telefono = telefono;
}

public String getDetalle() {
    return detalle;
}

public void setDetalle(String detalle) {
    this.detalle = detalle;
}

public int getTipo() {
    return tipo;
}

public void setTipo(int tipo) {
    this.tipo = tipo;
}

public String getRazonSocial() {
    return razonSocial;
}

public void setRazonSocial(String razonSocial) {
    this.razonSocial = razonSocial;
}

public String getDireccion() {
    return direccion;
}

public void setDireccion(String direccion) {
    this.direccion = direccion;
}

public int getEstado() {
    return estado;
}

public void setEstado(int estado) {
    this.estado = estado;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(this.tipo);
    dest.writeInt(this.estado);
    dest.writeLong(this.id);
    dest.writeString(this.razonSocial);
    dest.writeString(this.direccion);
    dest.writeString(this.contacto);
    dest.writeString(this.telefono);
    dest.writeString(this.detalle);

}

public Reparacion(Parcel in) {
    readFromParcel(in);
}

private void readFromParcel(Parcel in) {
    this.tipo = in.readInt();
    this.estado = in.readInt();
    this.id = in.readInt();
    this.razonSocial = in.readString();
    this.direccion = in.readString();
    this.contacto = in.readString();
    this.telefono = in.readString();
    this.detalle = in.readString();

}

public static final Parcelable.Creator<Reparacion> CREATOR = new Parcelable.Creator<Reparacion>() {
    public Reparacion createFromParcel(Parcel in) {
        return new Reparacion(in);
    }

    public Reparacion[] newArray(int size) {
        return new Reparacion[size];
    }
};

public void almacenar(Context contexto){
    ReparacionBBDD rbd=new ReparacionBBDD(contexto);
    rbd.insert(this);
}

public void eliminar(Context contexto){
    ReparacionBBDD rbd=new ReparacionBBDD(contexto);
    rbd.delete(this);
}

public void actualizar(Context contexto){
    ReparacionBBDD rbd=new ReparacionBBDD(contexto);
    rbd.update(this);
}

}

问题是我可以恢复int数据,但是当我收到对象时字符串数据为null。怎么可能???

我已经阅读了很多代码,而且我已经做了很多次,但我不知道错误!

非常感谢!!!

1 个答案:

答案 0 :(得分:4)

您必须按照添加的方式(数据类型和顺序)检索数据。所以这一行可能导致问题:

dest.writeLong(this.id);

将其替换为:

dest.writeInt(this.id);