Android Parcel序列化实践

来源:互联网 发布:16年淘宝食品类目新规 编辑:程序博客网 时间:2024/06/08 07:40
public static class APPInfo implements Parcelable{        private String mAppName;        private Drawable mDrawable;        private String mPkgName;        private String mStorePkg;        private String mAppID;        private String mDrawableUrl;        private boolean mIsSelect;        private boolean mIsInstall;        public boolean isIsSelect() {            return mIsSelect;        }        public void setIsSelect(boolean isSelect) {            mIsSelect = isSelect;        }        public boolean isIsInstall() {            return mIsInstall;        }        public String getStorePkg() {            return mStorePkg;        }        public void setStorePkg(String storePkg) {            mStorePkg = storePkg;        }        public void setIsInstall(boolean isInstall) {            mIsInstall = isInstall;        }        public String getAppName() {            return mAppName;        }        public void setAppName(String appName) {            mAppName = appName;        }        public Drawable getDrawable() {            return mDrawable;        }        public void setDrawable(Drawable drawable) {            mDrawable = drawable;        }        public String getPkg() {            return mPkgName;        }        public void setPkg(String pkgName) {            mPkgName = pkgName;        }        public String getDrawableUrl() {            return mDrawableUrl;        }        public void setDrawableUrl(String drawableUrl) {            mDrawableUrl = drawableUrl;        }        public String getAppID() {            return mAppID;        }        public void setAppID(String appid) {            mAppID = appid;        }        public boolean isInstalled() {            return mIsInstall;        }        public void setInstalled(boolean isInstalled) {            mIsInstall = isInstalled;        }        public boolean isSelected() {            return mIsSelect;        }        public void setSelected(boolean isSelected) {            mIsSelect = isSelected;        }        public APPInfo(){                    }                public APPInfo(Parcel in) {            //这里的顺序一定要和writeToParcel顺序一致,不然取的值会颠倒            mAppName = in.readString();            mPkgName = in.readString();            mAppID = in.readString();            mStorePkg = in.readString();            mDrawableUrl = in.readString();                    }                @Override        public int describeContents() {            // TODO Auto-generated method stub            return 0;        }        @Override        public void writeToParcel(Parcel dest, int flags) {            dest.writeString(mAppName);            dest.writeString(mPkgName);            dest.writeString(mAppID);            dest.writeString(mStorePkg);            dest.writeString(mDrawableUrl);                    }                public static final Parcelable.Creator<APPInfo> CREATOR = new Creator<APPInfo>()          {              public APPInfo createFromParcel(Parcel source)              {                  return new APPInfo(source);              }              public APPInfo[] newArray(int size)              {                  return new APPInfo[size];              }          };

Drawable 暂时没有找到序列化的方法,可以转成用Bitmap,因为Bitmap类本身已经是序列化的,或者重写Drawable类


转:android序列化Parcelable对boolean的实现

writeToParcel:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. dest.writeByte((byte) (myBoolean ? 1 : 0));     //if myBoolean == true, byte == 1  

readFromParcel:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. myBoolean = in.readByte() != 0;     //myBoolean == true if byte != 0  

很简单,有木有,只是把boolean转成byte就行了。
                                             
0 0
原创粉丝点击