Intent使用Parcelable传递对象

package com.pingyijinren.test;

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

import java.io.Serializable;

/**
 * Created by Administrator on 2016/5/20 0020.
 */
public class Person implements Parcelable{
    private String name;
    private int age;

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

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

    public static final Parcelable.Creator<Person> CREATOR=new Parcelable.Creator<Person>(){
        @Override
        public Person createFromParcel(Parcel source){
            Person person=new Person();
            person.name=source.readString();
            person.age=source.readInt();
            return person;
        }

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

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

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

    public String getName(){
        return name;
    }

    public int getAge(){
        return age;
    }
}
package com.pingyijinren.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class IndexActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_index);

        Intent intent=new Intent(this,TransferObjectActivity.class);
        Person person=new Person();
        person.setAge(26);
        person.setName("张钦雄");
        intent.putExtra("person",person);
        startActivity(intent);
    }
}
package com.pingyijinren.test;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class TransferObjectActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_transfer_object);

        Person person=getIntent().getParcelableExtra("person");
        Log.d("MainActivity",person.getName()+" "+person.getAge());
    }
}
时间: 2024-10-16 22:26:48

Intent使用Parcelable传递对象的相关文章

在Android中通过Intent使用Bundle传递对象

IntentBundle传递对象SerializableParcelable Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法.被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable.两种序列化方式的区别:1.在使用内存的时候,Parcelable比Se

Intent之对象传递(Parcelable传递对象和对象集合)

接着上一篇文章,下面我们讨论一下如何利用Parcelable实现Intent之间对象的传递 一.实现对象传递 首先创建User.java实现Parcelable接口: package org.yayun.demo; import java.io.Serializable; import android.R.integer; import android.os.Parcel; import android.os.Parcelable; public class User implements Pa

intent使用Serializable传递对象

package com.pingyijinren.test; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class IndexActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceStat

Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!

[转][原文] 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写了一个简单的Demo,大家就一步一步跟我来吧! 第一步:新建一个andr

Android中Intent传递对象的两种方法(Serializable,Parcelable)

今天要给大家讲一下Android中 Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是 Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大 家更容易理解我还是照常写了一个简单的Demo,大家就一步一步跟我来吧! 第一步:新建一个Android工程命名为Object

(六十四)Android中Intent传递对象的两种方法(Serializable,Parcelable)

转载自:http://blog.csdn.net/android_tutor/article/details/5740845 大家好,好久不见,今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable

[转]Android中Intent传递对象的两种方法(Serializable,Parcelable)

http://blog.csdn.net/xyz_lmn/article/details/5908355 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,为了让大家更容易理解我还是照常写

使用Intent传递对象

我们可以借助Intent来启动活动,发送广播,启动服务等. 还可以通过putExtra()方法传递一些数据. 但我们会发现putExtra()方法中所支持的类型是有限的.当我们想去传递一些自定义对象的时候,会发现无法通过putExtra()的方法进行传递. 但Intent是可以传递对象的. 使用Intent传递对象的通常有两种方式 Serializable 和 Parcelable. Serializable方式 Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态.

android 中传递对象两种方法探索(Serializable,Parcelable)

相信大家在android开发的过程中总会遇到要在Activity中间传递数据的情况,当然,遇到需要在Intent中传递对象的情况也不可避免,所以我就so了一下相关的知识,在这里总结消化一下.就目前来说,我了解到的只有两种方式: 1.利用Bundle.putSerializable(Key,Object): 2.利用Bundle.putParcelable(Key, Object): 下面详细介绍两种方法的使用和区别: 首先第一点,这两种方法实现的前提都需要将传递的对象Object序列化,那么,问