Android Intent 实例解析:传递Serializeable对象

需积分: 9 1 下载量 35 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
"intent的使用,包括如何通过Intent传递Serializable对象" 在Android开发中,Intent是一个非常重要的组件,它用于在应用程序的不同组件之间传递信息。Intent主要用于启动新的Activity、Service或者BroadcastReceiver,同时也可以用于在组件间传递数据。在这个示例中,我们将详细探讨如何使用Intent传递Serializable对象。 首先,`Intent`是Android中一个类,它的主要职责是描述一个操作,如启动一个Activity或Service。`Intent`包含了目标组件的元数据以及要传递的数据。在创建Intent时,我们通常会指定源组件(当前Activity)和目标组件(将要启动的Activity)。 在给定的代码段中,我们看到了一个名为`IntentDemo`的Activity,它实现了`OnClickListener`接口。`IntentDemo`有两个按钮,`sButton`和`pButton`,它们分别用于触发序列化数据和非序列化数据的传递。 `IntentDemo`中定义了两个常量`SER_KEY`和`PAR_KEY`,它们作为键值来存储在Intent的Extras里,便于在接收端取出数据。`SER_KEY`用于存放序列化数据,`PAR_KEY`则可能用于存放Parcelable数据(虽然在给定的代码中没有展示如何传递Parcelable对象)。 在`SerializeMethod()`方法中,我们看到如何将一个自定义的`Person`对象(假设它实现了Serializable接口)放入Intent。`Person`对象包含了`name`和`age`属性,分别被设置为"frankie"和25。 1. 首先,创建了一个`Person`实例并赋值。 2. 然后,创建一个新的Intent实例,指定了源组件(当前的`IntentDemo`)和目标组件(`IntentDemo1`)。 3. 接下来,创建一个Bundle对象,Bundle是一个可以存储键值对的容器,常用于Intent中传输数据。 4. 使用`putSerializable()`方法将`Person`对象放入Bundle,这里的键是`SER_KEY`。 5. 最后,调用`putExtras()`方法将包含`Person`对象的Bundle添加到Intent中,并通过`startActivity()`方法启动`IntentDemo1`,这样`Person`对象就随着Intent传递到了新的Activity。 在目标Activity(这里是`IntentDemo1`)中,我们可以使用`getIntent().getExtras().getSerializable(SER_KEY)`来获取传递过来的`Person`对象。这种方式适用于传递复杂的对象,因为Serializable接口允许我们将任何Java对象(只要该对象及其所有嵌套对象都实现了Serializable)序列化为二进制数据,然后在Intent中传输。 总结来说,Intent是Android系统中的核心机制之一,它提供了组件间通信的能力。通过Intent,我们可以轻松地传递数据,如简单的字符串、整型数值,甚至复杂的自定义对象。在实际开发中,理解并熟练掌握Intent的使用,对于构建功能丰富的Android应用至关重要。