zoukankan      html  css  js  c++  java
  • Activity Intent 传递参数之 Parcelable

    一、创建 继承 Parcelable的bean,

    代码中 writeToParcel 回调方法完成序列化,

    createFromParcel回调方法完成反序列化
    (注释:如果bean中变量是类则该类也要继承Parcelable)

    例如:

    public class Person implements Parcelable {
    private Address address;
    private String name;
    private int age;
    public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {

    @Override
    public Person[] newArray(int size) {
    return null;
    }

    @Override
    public Person createFromParcel(Parcel source) {
    Person result = new Person();
    result.age = source.readInt();
    result.name = source.readString();
    result.address = source.readParcelable(Address.class.getClassLoader());
    return result;
    }
    };

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(age);
    dest.writeString(name);
    dest.writeParcelable(address, PARCELABLE_WRITE_RETURN_VALUE);
    }

    public Address getAddress() {
    return address;
    }

    public void setAddress(Address address) {
    this.address = address;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }

    @Override
    public String toString() {
    return "Person [address=" + address + ", name=" + name + ", age=" + age
    + "]";
    }
    }

    二、第一个activity 发送 Parcelable对象
    Person person = new Person();
    person.setAge(2);

    Intent intent = new Intent(this,MainActivity.class);
    intent.putExtra("person",person);
    this.startActivity(intent);


    三、第二个activity 接收 Parcelable对象
    Person person = (Person) getIntent().getParcelableExtra(
    "person");

  • 相关阅读:
    如何基于Azure平台实现MySQL HA(方法论篇)
    如何对Azure磁盘性能进行测试
    Azure底层架构的初步分析
    聊聊Azure的安全性
    关于Azure带宽的测试
    JavaScript 优化
    SQL时间段查询
    win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法
    putty 使用方法,中文教程
    怎样才能专心工作
  • 原文地址:https://www.cnblogs.com/adamli/p/13228847.html
Copyright © 2011-2022 走看看