Java 如何查看对象的可包裹成员?
我有一个具有视图成员的对象。所以我想传递这个对象的ArrayList,我需要传递这个视图。我知道如何实现Parcelable 代码如下所示: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,
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中。