今天的破事,我们来聊聊在Android中,如果在两个Activity之间传递对象。
首先我们知道利用Intent的putExtra方法放入要传递的数据。看看API上的函数:
Intent |
putExtra(
String name, double[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, int value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
CharSequence value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, char value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
Bundle value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
Parcelable[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
Serializable value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, int[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, float value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, byte[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, long[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
Parcelable value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, float[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, long value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
String[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, boolean value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, boolean[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, short value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, double value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, short[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
String value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, byte value)
Add extended data to the intent.
|
Intent |
putExtra(
String name, char[] value)
Add extended data to the intent.
|
Intent |
putExtra(
String name,
CharSequence[] value)
Add extended data to the intent.
|
Intent |
putExtras(
Intent src)
Copy all extras in 'src' in to this intent.
|
Intent |
putExtras(
Bundle extras)
Add a set of extended data to the intent.
|
Intent |
putIntegerArrayListExtra(
String name,
ArrayList<
Integer> value)
Add extended data to the intent.
|
Intent |
putParcelableArrayListExtra(
String name,
ArrayList<? extends
Parcelable> value)
Add extended data to the intent.
|
Intent |
putStringArrayListExtra(
String name,
ArrayList<
String> value)
Add extended data to the intent.
|
从上面的方法发现,没有直接放入object的函数。但是有一个
Intent |
putExtras(
Bundle extras)
Add a set of extended data to the intent.
|
一是Bundle.putSerializable(Key,Object);
二是采用Bundle.putParcelable(Key, Object);
其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口。
结合我的项目来说下。首先在你跳转前的Activity设置bundle,这里我是想从
说明,这里的AccountInfo需要实现Serializable接口。
最后我们在PersonCenterActivity中onCreate方法中用下面的方法取得account对象
Parcelable 方式和这基本类似,这里不展开讲了。注意要传递的对象需要实现implements Parcelable。
接受对象:
是不是很简单,其实就这点破事。