Intent 也可以传递对象的,例子如下:
MyParcelable.java 文件:
package com.ldq.parcelable;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MyParcelable extends Activity {
private Button button;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Student student = new Student();
student._id = 1001;
student.name = "zhang";
student.sex = 1;
student.age = 10;
Intent intent = new Intent(MyParcelable.this,
AnotherActivity.class);
intent.putExtra("student", student);
startActivity(intent);
}
});
}
}
Student.java 文件:
package com.ldq.parcelable;
import android.os.Parcel;
import android.os.Parcelable;
public class Student implements Parcelable {
public int _id;
public String name;
public int sex;
public int age;
Student(Parcel p) {
_id = p.readInt();
name = p.readString();
sex = p.readInt();
age = p.readInt();
}
Student() {
};
public static final Parcelable.Creator<Student> CREATOR = new Parcelable.Creator<Student>() {
public Student createFromParcel(Parcel p) {
return new Student(p);
}
public Student[] newArray(int size) {
return new Student[size];
}
};
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel p, int flags) {
p.writeInt(_id);
p.writeString(name);
p.writeInt(sex);
p.writeInt(age);
}
}
AnotherActivity.java 文件:
package com.ldq.parcelable;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class AnotherActivity extends Activity {
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
Student s = getIntent().getParcelableExtra("student");
textView = (TextView) findViewById(R.id.textView1);
textView.setText("name:" + s.name + ",age:" + s.age);
}
}
AndroidManifest.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ldq.parcelable" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyParcelable" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AnotherActivity">
</activity>
</application>
</manifest>
main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
main1.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="TextView" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>
分享到:
相关推荐
Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io....
- **优点**:性能优秀,是Android系统推荐的传递对象的方式,因为它在内存和时间效率上都优于`Serializable`。 - **缺点**:实现过程相对复杂,需要手动处理每个字段的序列化和反序列化。 ### 结论 对于简单的对象...
在实际开发中,如果需要频繁地通过Intent传递对象,推荐使用`Parcelable`接口,以提高应用性能。然而,对于简单的数据模型或者不需要考虑性能的情况下,`Serializable`接口是一个更简单的选择。 总结起来,Android...
本话题将详细探讨如何通过Intent传递对象以及对象数组。 一、Intent的基础 Intent主要由两部分构成:Action(动作)和Data(数据)。Action定义了Intent要执行的操作,如ACTION_VIEW、ACTION_SEND等;Data则包含了...
"Android Intent传递对象"这个主题主要关注如何利用Intent来传递自定义对象,以便在应用程序的不同部分共享数据。下面我们将深入探讨这个话题。 首先,了解Intent的基本结构和类型至关重要。Intent有两种类型:显式...
Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat报错等等。 这就牵涉到一个问题:Intent 传递数据大小限制。 Intent到底能够携带多少数据呢? 使用Intent传送数据时...
- **性能**:Parcelable的序列化和反序列化速度远超Serializable,尤其是在传递大量数据或频繁传递对象时。 - **内存消耗**:Parcelable在内存使用上也优于Serializable,因为它不需要创建额外的代理对象。 - **复杂...
本文实例分析了Android编程使用Intent传递对象的方法。分享给大家供大家参考,具体如下: 之前的文章中,介绍过Intent的用法,比如启动活动,发送广播,启发服务等,并且可以...在Android中,使用Intent传递对象有两种
以上就是使用Serializable接口在Intent中传递对象的基本操作和注意事项。在实际开发中,根据项目需求和性能要求,选择合适的对象传递方式是非常重要的。在提供的Android_project_Serializable项目中,你可以找到相关...
4. **传递对象**:现在,你可以在Intent中使用`PutParcelableExtra()`方法传递实现了`IParcelable`接口的对象。 ```csharp var intent = new Intent(this, typeof(SecondActivity)); intent.PutParcelableExtra("my...
"Android通过Intent传递数据"这一主题,涵盖了Intent的基本使用和数据传递的方式。 Intent分为显式Intent和隐式Intent。显式Intent明确指定要启动的目标组件,而隐式Intent则不指定具体接收者,而是根据Intent的...
本篇文章将深入探讨如何通过Intent传递对象,以及涉及到的序列化方式——Serializable和Parcelable。 首先,Intent主要分为显式Intent和隐式Intent。显式Intent明确指定要启动的目标组件,而隐式Intent则通过ACTION...
本文实例讲述了android中intent传递list或者对象的方法。分享给大家供大家参考。具体实现方法如下: 方法一: 如果单纯的传递List<String> 或者List的话 就可以直接使用 代码如下: 代码如下:intent....
本DEMO主要讲解如何通过Intent传递对象和数组,这些都是Android开发中的基础知识,对于理解应用程序间的数据通信至关重要。 一、Intent的基本使用 Intent对象是用来表示一个操作的意图,它可以携带少量的数据。在...
本教程将深入探讨如何使用Intent在Activity之间传递对象以及在Activity返回时刷新数据。 首先,我们来理解Intent的基本概念。Intent是Android系统的一个核心概念,它表示一个动作(Action)和动作的目标(Component...
Android提供了多种方式来传递对象,包括Intent、Bundle、Parcelable、Serializable等。下面将详细讲解这些方法及其适用场景。 首先,Intent是Android系统用来启动Activity或Service的主要手段,同时也支持传递数据...
- 在Intent中使用`putExtra()`和`getSerializableExtra()`方法传递和接收对象。 - Parcelable接口及其与Serializable的性能比较。 理解这些知识点对于Android开发者来说非常重要,尤其是在构建大型、复杂的Android...