Parcelable及Serializable的使用

相关知识:

知识点:Android系统中Parcelable和Serializable的区别

http://www.jianshu.com/p/a60b609ec7e7

http://lydia-fly.iteye.com/blog/2029269


Serializable的使用

Serializable的使用比较简单,直接实现Serializable接口就好。

Parcelable的使用

Parcelable的使用就稍微麻烦一点,但效率比前者好很多。

Demo主体

package com.example.guan.testapp.model;

import android.os.Parcel;
import android.os.Parcelable;

public class GuanFile implements Parcelable {
    //这个类比较简单,只包含三个字段
    public String FileName;
    public String FileUrl;
    public String FilePath;

    //构造方法,用于赋值
    public GuanFile(String fileName, String fileUrl, String filePath) {
        this.FileName = fileName;
        this.FileUrl = fileUrl;
        this.FilePath = filePath;
    }

    //===========以下方法实现了Parcelable功能===========================

    protected GuanFile(Parcel in) {
        FileName = in.readString();
        FileUrl = in.readString();
        FilePath = in.readString();
    }

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

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

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(FileName);
        dest.writeString(FileUrl);
        dest.writeString(FilePath);
    }
}

使用

ArrayList<GuanFile> guanFiles=new ArrayList<GuanFile>();
guanFiles.add(new GuanFile("tmpname",AppCommon.downloadURL,filePath));

Intent intent=new Intent(mContext, Other.class);
intent.putExtra("guanfiles",guanFiles);

ArrayList<GuanFile> guanFiles = intent.getParcelableArrayListExtra("guanfiles");

GuanFile类实现了Parcelable接口。在通过Intent在传递对象的时候,就可以通过getParcelableArrayListExtra获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值