Java 如何查看对象的可包裹成员?

Java 如何查看对象的可包裹成员?,java,android,object,view,parcelable,Java,Android,Object,View,Parcelable,我有一个具有视图成员的对象。所以我想传递这个对象的ArrayList,我需要传递这个视图。我知道如何实现Parcelable 代码如下所示: public class Variable implements Parcelable { public View mView; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest,

我有一个具有视图成员的对象。所以我想传递这个对象的ArrayList,我需要传递这个视图。我知道如何实现Parcelable

代码如下所示:

public class Variable implements Parcelable {
    public View mView;
}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeValue(mView)
}

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

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

private Variable(Parcel in) {
   mView= (View) in.readValue(getClass().getClassLoader());
}
公共类变量实现可包裹{
公众视野;
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目标写入值(mView)
}
公共静态最终包裹。创建者
=新的Parcelable.Creator(){
公共变量createFromParcel(Parcel in){
返回新变量(in);
}
公共变量[]newArray(整数大小){
返回新变量[大小];
}
};
专用变量(地块输入){
mView=(视图)in.readValue(getClass().getClassLoader());
}
所以我尝试了writeToParcel和Variable(Parcel-in)方法的object方法,但显然不起作用


我应该如何做到这一点?

您应该只为数据对象实现
parcelable
,而不为视图实现,其思想是
parcel/unpaccel
数据状态以使用状态重新实例化给定的
视图

您还应该注意,当您打包数据并通过Intent发送数据时,事务可以保留的缓冲区大小有一个硬设置的限制。因此,理想情况下,避免通过parcel传输大型内存对象(一个不好的例子是让我们说
位图

此外,手动实现parcelable非常繁琐,而且可能容易出错。我建议使用Studio的插件或任何好的第三方插件来实现
Parcelable


希望有帮助

查看
对象不可
包裹
。只能将视图的状态保存在Parcelable中。