Java 有没有办法在活动之间传递不可序列化的参数?

Java 有没有办法在活动之间传递不可序列化的参数?,java,android,serialization,Java,Android,Serialization,有没有办法在Android中的活动之间传递不可序列化的数据? 例如,如果我不能序列化FieldForSomeReasonNotSerializable(如位图、Google Latling、TextView),我如何将该类传递给Intent: 您可以实现Parcelable而不是Serializable。在android Studio中,向导(红色灯泡)将帮助您实现可包裹界面。只需单击Implements方法,然后在类名中使用相同的红色灯泡添加parcelable实现 实现Parcelable的

有没有办法在Android中的活动之间传递不可序列化的数据? 例如,如果我不能序列化FieldForSomeReasonNotSerializable(如位图、Google Latling、TextView),我如何将该类传递给Intent:


您可以实现Parcelable而不是Serializable。在android Studio中,向导(红色灯泡)将帮助您实现可包裹界面。只需单击Implements方法,然后在类名中使用相同的红色灯泡添加parcelable实现

实现Parcelable的公共类CategoryTo{

@PrimaryKey
private String id;

/**
 * Category Name
 */
private String name;

/**
 * Category Color
 */
private String color;


public CategoryDTO() {

}

public CategoryDTO(String id, String name, String color) {
    this.name = name;
    this.color = color;
    this.id = id;
}

protected CategoryDTO(Parcel in) {
    id = in.readString();
    color = in.readString();
    name = in.readString();

}

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

    @Override
    public CategoryDTO[] newArray(int size) {
        return new CategoryDTO[size];
    }
};
@PrimaryKey
私有字符串id;
/**
*类别名称
*/
私有字符串名称;
/**
*类别颜色
*/
私有字符串颜色;
公共类别(){
}
公共CategoryTo(字符串id、字符串名称、字符串颜色){
this.name=名称;
这个颜色=颜色;
this.id=id;
}
受保护的类别(包裹中){
id=in.readString();
color=in.readString();
name=in.readString();
}
公共静态最终创建者=新创建者(){
@凌驾
要创建的公共类别FromParcel(中的地块){
返回新的CategoryTo(在中);
}
@凌驾
公共CategoryTo[]新数组(整数大小){
将新CategoryDTO返回到[大小];
}
};

}

谢谢!这是非常有趣的Parcelablizatio(?),现在我正在阅读java文档中的相关内容。您应该通过一个intent来传递位图。您应该将该位图保存到磁盘,然后传递该位图的文件url。您也不应该传递
视图
,因为这只是一个示例。。那么LatLng.class呢?LatLng实现了parcelable,所以您已经可以通过它了
@PrimaryKey
private String id;

/**
 * Category Name
 */
private String name;

/**
 * Category Color
 */
private String color;


public CategoryDTO() {

}

public CategoryDTO(String id, String name, String color) {
    this.name = name;
    this.color = color;
    this.id = id;
}

protected CategoryDTO(Parcel in) {
    id = in.readString();
    color = in.readString();
    name = in.readString();

}

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

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