• Parcelable序列化对象


     

    1.创建Parcelable对象

    /*************************
     *@author 徐宏明    E-Mail:android_xhm.126.com
     *                                        QQ:294985925
     *@version 创建时间            :2013-7-8 上午11:49:42
     *
     *@see
     *************************/
    package com.xhm.unit;
    
    import android.os.Parcel;
    import android.os.Parcelable;
    
    /**
     * Parcelable实现其可实现对象的序列化,并且能放入数组对象,比Serializable更高效。
     * 
     * @author Administrator
     * 
     */
    public class AddInfo implements Parcelable {
        private String mName, mNickname, mQq, mPhone, mEmail, mAddress;// 姓名,昵称,QQ,电话,邮箱,地址
    
        public AddInfo(String name, String nickname, String qq, String phone,
                String email, String address) {
            // TODO Auto-generated constructor stub
            this.mName = name;
            this.mNickname = nickname;
            this.mQq = qq;
            this.mPhone = phone;
            this.mEmail = email;
            this.mAddress = address;
        }
    
        /**
         * 这个方法不晓得做什么的,返回0就可以。
         */
        @Override
        public int describeContents() {
            // TODO Auto-generated method stub
            return 0;
        }
    
        /**
         * 构造方法,用于读取对象信息,注意读写顺序要和写入顺序一致!
         * 
         * @param in
         *            读入对象
         */
        private AddInfo(Parcel in) {
            mName = in.readString();
            mNickname = in.readString();
            mQq = in.readString();
            mPhone = in.readString();
            mEmail = in.readString();
            mAddress = in.readString();
        }
    
        /**
         * 将数据写入Parcel对象,写入的顺序和读取的顺序必须一致
         */
        @Override
        public void writeToParcel(Parcel dest, int flags) {
            // TODO Auto-generated method stub
            dest.writeString(mName);
            dest.writeString(mNickname);
            dest.writeString(mQq);
            dest.writeString(mPhone);
            dest.writeString(mEmail);
            dest.writeString(mAddress);
        }
    
        /**
         * 固定方法,必须是static final 方法名必须大写
         */
        public static final Parcelable.Creator<AddInfo> CREATOR = new Parcelable.Creator<AddInfo>() {
            // 获得一个对象
            public AddInfo createFromParcel(Parcel in) {
                return new AddInfo(in);
            }
    
            // 获得多个对象
            public AddInfo[] newArray(int size) {
                return new AddInfo[size];
            }
        };
    
        public String getmName() {
            return mName;
        }
    
        public void setmName(String mName) {
            this.mName = mName;
        }
    
        public String getmNickname() {
            return mNickname;
        }
    
        public void setmNickname(String mNickname) {
            this.mNickname = mNickname;
        }
    
        public String getmQq() {
            return mQq;
        }
    
        public void setmQq(String mQq) {
            this.mQq = mQq;
        }
    
        public String getmPhone() {
            return mPhone;
        }
    
        public void setmPhone(String mPhone) {
            this.mPhone = mPhone;
        }
    
        public String getmEmail() {
            return mEmail;
        }
    
        public void setmEmail(String mEmail) {
            this.mEmail = mEmail;
        }
    
        public String getmAddress() {
            return mAddress;
        }
    
        public void setmAddress(String mAddress) {
            this.mAddress = mAddress;
        }
    }
     

    2.使用Parcelable对象

                // 初始化intent
                mBase_intent = new Intent(this, MySelf_Bitmap_Activity.class);
                // 初始化Parcelable对象
                AddInfo info = new AddInfo(mView_myself_pop_edit[0].getText()
                        .toString(), mView_myself_pop_edit[1].getText().toString(),
                        mView_myself_pop_edit[2].getText().toString(),
                        mView_myself_pop_edit[3].getText().toString(),
                        mView_myself_pop_edit[4].getText().toString(),
                        mView_myself_pop_edit[5].getText().toString());
                // 添加Parcelable对象
                mBase_intent.putExtra("myself_activity", info);
                // 跳转
                startActivity(mBase_intent);

    3.提取Parcelable对象中的信息

            // 获得用户信息
            mInfo = getIntent().getParcelableExtra("myself_activity_info");

    4.Parcelable和Serializable性能对比:

  • 相关阅读:
    idea破解
    metasploit常用命令(持續更新...)
    metasploit魔鬼训练营_XSS
    渗透测试流程
    中国电信猫后接路由器具体设置
    python首次尝试——hello world
    【阿圆总结】关于平时阅读的推荐
    【转载】curl 模拟 GETPOST 请求,curl查看响应头 以及 curl post 上传文件
    【转载】用实例给新手讲解RSA加密算法
    【翻译】Open ID Connect---OIDC 是什么东西?
  • 原文地址:https://www.cnblogs.com/qinghuaideren/p/3178124.html
Copyright © 2020-2023  润新知