当前位置: 代码迷 >> Android >> Android中施用Intent传递对象
  详细解决方案

Android中施用Intent传递对象

热度:91   发布时间:2016-05-01 18:52:25.0
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>
?
  相关解决方案