android中Parcelable序列化的使用。

目录导航:

  1. Serializable在android中的使用
  2. Parcelable在android中的使用
  3. Serializable与Parcelable的比较
  4. 友情链接

项目结构如下:

Serializable在android中的使用

一、 建立一个实现了Serializable接口的Man类:

package com.example.linux.parcelabletest;import java.io.Serializable;/** * Created by Linux on 2016/3/22. */public class Man implements Serializable {    private String username;    private String password;    public Man(String username, String password) {        this.username = username;        this.password = password;    }    public String getUsername() {        return username;    }    public String getPassword() {        return password;    }}

二、 MainActivity中serializable在android中的序列化

// serializable的使用public void serializable(View view) {    Intent intent = new Intent();    intent.setClass(MainActivity.this, AnotherActivity.class);    Man man = new Man("google", "android");    Bundle bundle = new Bundle();    bundle.putSerializable("man", man);    intent.putExtras(bundle);    startActivity(intent);}

三、AnotherActivity中serializable在android中的反序列化:

Intent intent = getIntent();Bundle extras = intent.getExtras();Man man = (Man) extras.getSerializable("man");Log.i(TAG, "username: " + man.getUsername() + ", password: " + man.getPassword());

四、 打印结果如下:

03-23 00:46:27.870 30378-30378/com.example.linux.parcelabletest I/Parcelable: username: google, password: android

Parcelable在android中的使用

一、 建立一个实现了Parcelable接口的Person类:

package com.example.linux.parcelabletest;import android.os.Parcel;import android.os.Parcelable;import android.util.Log;/** * Created by Linux on 2016/3/20. */public class Person implements Parcelable {    private final static String TAG = "Parcelable";    private String username;    private String password;    public Person(String username, String password) {        Log.i(TAG, "person constructor. username and password"); // 1        this.username = username;        this.password = password;    }    public String getUsername() {        Log.i(TAG, "get usrename");        return username;    }    public String getPassword() {        Log.i(TAG, "get password");        return password;    }    @Override    public int describeContents() {        Log.i(TAG, "desceibe contents");        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        Log.i(TAG, "write to parcel: " + flags); // 2        dest.writeString(username);        dest.writeString(password);    }    public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>() {        @Override        public Person createFromParcel(Parcel source) {            Log.i(TAG, "creator: create from parcel"); // 3            return new Person(source);        }
@Override
public Person[] newArray(int size) { Log.i(TAG, "creator: new array"); return new Person[size]; } }; public Person(Parcel parcel) { Log.i(TAG, "person constructor. parcel"); // 4 username = parcel.readString(); password = parcel.readString(); }}

二、 MainActivity中Parcelable在android中的序列化

// parcelable序列化的使用    public void parcelable(View view) {        Intent intent = new Intent();        intent.setClass(MainActivity.this, AnotherActivity.class);        Person person = new Person("huhx", "linux");        Bundle bundle = new Bundle();        bundle.putParcelable("person", person);        intent.putExtras(bundle);        startActivity(intent);    }

三、 AnotherActivity中Parcelable在android中的反序列化:

Intent intent = getIntent();Bundle extras = intent.getExtras();Person person = extras.getParcelable("person");Log.i(TAG, "username: " + person.getUsername() + ", password: " + person.getPassword());

四、 打印结果如下:

03-23 00:45:49.510 30378-30378/com.example.linux.parcelabletest I/Parcelable: person constructor. username and password03-23 00:45:49.510 30378-30378/com.example.linux.parcelabletest I/Parcelable: write to parcel: 003-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: creator: create from parcel03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: person constructor. parcel03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: get usrename03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: get password03-23 00:45:49.660 30378-30378/com.example.linux.parcelabletest I/Parcelable: username: huhx, password: linux

Serializable与Parcelable的比较

友情链接

  测试程序源代码 访问密码 7925

更多相关文章

  1. WebView在Fragment中点击返回键返回上一页
  2. Android中的Animation的使用
  3. Android前向兼容的几个问题
  4. android 中文api (84) —— TrafficStats
  5. android全屏去掉title栏的多种实现方法
  6. android fragment ontouch 事件
  7. 如何在Android中使用OpenCV
  8. Android(安卓)使用 TableLayout 布局拉伸宽度
  9. Android(安卓)Studio 开发依赖库集锦

随机推荐

  1. ANDROID url资源站
  2. 【翻译】(1)Android(安卓)NDK Overview
  3. 2010.12.22——— android 一个永远处于
  4. android布局属性之margin
  5. Android预定义样式
  6. Android(安卓)wifi触发回连ap的过程
  7. 解决Android(安卓)Studio 和 Android(安
  8. Android(安卓)Map开发基础知识学习笔记
  9. android videoview 没有画面的一个原因
  10. android开发每日汇总【2011-10-29】