`
leidiqiu
  • 浏览: 135086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中使用Intent传递对象

 
阅读更多

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>
 
0
0
分享到:
评论

相关推荐

    Android 通过Intent使用Bundle传递对象详细介绍

    Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io....

    android Intent传递对象数据

    - **优点**:性能优秀,是Android系统推荐的传递对象的方式,因为它在内存和时间效率上都优于`Serializable`。 - **缺点**:实现过程相对复杂,需要手动处理每个字段的序列化和反序列化。 ### 结论 对于简单的对象...

    Android系列之Intent传递对象的几种实例方法

    在实际开发中,如果需要频繁地通过Intent传递对象,推荐使用`Parcelable`接口,以提高应用性能。然而,对于简单的数据模型或者不需要考虑性能的情况下,`Serializable`接口是一个更简单的选择。 总结起来,Android...

    Intent传递对象、对象数组

    本话题将详细探讨如何通过Intent传递对象以及对象数组。 一、Intent的基础 Intent主要由两部分构成:Action(动作)和Data(数据)。Action定义了Intent要执行的操作,如ACTION_VIEW、ACTION_SEND等;Data则包含了...

    Android Intent传递对象

    "Android Intent传递对象"这个主题主要关注如何利用Intent来传递自定义对象,以便在应用程序的不同部分共享数据。下面我们将深入探讨这个话题。 首先,了解Intent的基本结构和类型至关重要。Intent有两种类型:显式...

    Android Intent传递数据大小限制详解

    Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat报错等等。 这就牵涉到一个问题:Intent 传递数据大小限制。 Intent到底能够携带多少数据呢? 使用Intent传送数据时...

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

    - **性能**:Parcelable的序列化和反序列化速度远超Serializable,尤其是在传递大量数据或频繁传递对象时。 - **内存消耗**:Parcelable在内存使用上也优于Serializable,因为它不需要创建额外的代理对象。 - **复杂...

    Android编程使用Intent传递对象的方法分析

    本文实例分析了Android编程使用Intent传递对象的方法。分享给大家供大家参考,具体如下: 之前的文章中,介绍过Intent的用法,比如启动活动,发送广播,启发服务等,并且可以...在Android中,使用Intent传递对象有两种

    Intent传递对象Serializable

    以上就是使用Serializable接口在Intent中传递对象的基本操作和注意事项。在实际开发中,根据项目需求和性能要求,选择合适的对象传递方式是非常重要的。在提供的Android_project_Serializable项目中,你可以找到相关...

    Xamarin.Android之Intent传递对象简单实例

    4. **传递对象**:现在,你可以在Intent中使用`PutParcelableExtra()`方法传递实现了`IParcelable`接口的对象。 ```csharp var intent = new Intent(this, typeof(SecondActivity)); intent.PutParcelableExtra("my...

    Android通过Intent传递数据

    "Android通过Intent传递数据"这一主题,涵盖了Intent的基本使用和数据传递的方式。 Intent分为显式Intent和隐式Intent。显式Intent明确指定要启动的目标组件,而隐式Intent则不指定具体接收者,而是根据Intent的...

    Intent传递对象

    本篇文章将深入探讨如何通过Intent传递对象,以及涉及到的序列化方式——Serializable和Parcelable。 首先,Intent主要分为显式Intent和隐式Intent。显式Intent明确指定要启动的目标组件,而隐式Intent则通过ACTION...

    android中intent传递list或者对象的方法

    本文实例讲述了android中intent传递list或者对象的方法。分享给大家供大家参考。具体实现方法如下: 方法一: 如果单纯的传递List&lt;String&gt; 或者List的话 就可以直接使用 代码如下: 代码如下:intent....

    【Intent传递】对象、数组

    本DEMO主要讲解如何通过Intent传递对象和数组,这些都是Android开发中的基础知识,对于理解应用程序间的数据通信至关重要。 一、Intent的基本使用 Intent对象是用来表示一个操作的意图,它可以携带少量的数据。在...

    Android intent 传递对象以及返回刷新

    本教程将深入探讨如何使用Intent在Activity之间传递对象以及在Activity返回时刷新数据。 首先,我们来理解Intent的基本概念。Intent是Android系统的一个核心概念,它表示一个动作(Action)和动作的目标(Component...

    android 传递对象

    Android提供了多种方式来传递对象,包括Intent、Bundle、Parcelable、Serializable等。下面将详细讲解这些方法及其适用场景。 首先,Intent是Android系统用来启动Activity或Service的主要手段,同时也支持传递数据...

    intent传递自定义对象

    - 在Intent中使用`putExtra()`和`getSerializableExtra()`方法传递和接收对象。 - Parcelable接口及其与Serializable的性能比较。 理解这些知识点对于Android开发者来说非常重要,尤其是在构建大型、复杂的Android...

Global site tag (gtag.js) - Google Analytics