`
leidiqiu
  • 浏览: 133105 次
  • 性别: 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics