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. Android 设置默认锁屏壁纸接口
  2. (android 实战总结)android对html支持接口总结
  3. 第三部分:Android 应用程序接口指南---第一节:应用程序组件---第五
  4. Android 无线接口层RIL
  5. android对html支持接口总结
  6. Android 匿名共享内存Java接口分析
  7. Android rest接口
  8. android 常用api 接口签名验证
  9. Android中接口的使用及类使用

随机推荐

  1. TableLayout
  2. android sim卡 TelephonyManager类:Androi
  3. Android(安卓)开发 — 开机自启动
  4. 2010.10.30———Android(安卓)03
  5. Android官方入门文档[14]停止和重新启动
  6. android NDK 开发环境配置
  7. android emulator 配置_
  8. 安卓编程小tips
  9. Android(安卓)Jetpack架构组件Navigation
  10. Android高仿网易新闻客户端之动态添加标