Intent如何传递对象
来源:互联网 发布:java连接符 编辑:程序博客网 时间:2024/05/17 06:40
package com.tutor.objecttran;import android.os.Parcel;import android.os.Parcelable;public class Book implements Parcelable {private String bookName;private String author;private int publishTime;public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getPublishTime() {return publishTime;}public void setPublishTime(int publishTime) {this.publishTime = publishTime;}public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() {public Book createFromParcel(Parcel source) {Book mBook = new Book();mBook.bookName = source.readString();mBook.author = source.readString();mBook.publishTime = source.readInt();return mBook;}public Book[] newArray(int size) {return new Book[size];}};public int describeContents() {return 0;}public void writeToParcel(Parcel parcel, int flags) {parcel.writeString(bookName);parcel.writeString(author);parcel.writeInt(publishTime);}}
package com.tutor.objecttran;import java.io.Serializable;public class Person implements Serializable {private static final long serialVersionUID = -7060210544600464481L; private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
package com.tutor.objecttran;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 ObjectTranDemo extends Activity implements OnClickListener { private Button sButton,pButton;public final static String SER_KEY = "com.tutor.objecttran.ser";public final static String PAR_KEY = "com.tutor.objecttran.par"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupViews(); } //我的一贯作风呵呵 public void setupViews(){ sButton = (Button)findViewById(R.id.button1); pButton = (Button)findViewById(R.id.button2); sButton.setOnClickListener(this); pButton.setOnClickListener(this); } //Serializeable传递对象的方法 public void SerializeMethod(){ Person mPerson = new Person(); mPerson.setName("frankie"); mPerson.setAge(25); Intent mIntent = new Intent(this,ObjectTranDemo1.class); Bundle mBundle = new Bundle(); mBundle.putSerializable(SER_KEY,mPerson); mIntent.putExtras(mBundle); startActivity(mIntent); } //Pacelable传递对象方法 public void PacelableMethod(){ Book mBook = new Book(); mBook.setBookName("Android Tutor"); mBook.setAuthor("Frankie"); mBook.setPublishTime(2010); Intent mIntent = new Intent(this,ObjectTranDemo2.class); Bundle mBundle = new Bundle(); mBundle.putParcelable(PAR_KEY, mBook); mIntent.putExtras(mBundle); startActivity(mIntent); } //铵钮点击事件响应public void onClick(View v) {if(v == sButton){SerializeMethod();}else{PacelableMethod();}}}
package com.tutor.objecttran;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class ObjectTranDemo1 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView mTextView = new TextView(this); Person mPerson = (Person)getIntent().getSerializableExtra(ObjectTranDemo.SER_KEY); mTextView.setText("You name is: " + mPerson.getName() + "/n"+ "You age is: " + mPerson.getAge()); setContentView(mTextView); }}
package com.tutor.objecttran;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class ObjectTranDemo2 extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView mTextView = new TextView(this); Book mBook = (Book)getIntent().getParcelableExtra(ObjectTranDemo.PAR_KEY); mTextView.setText("Book name is: " + mBook.getBookName()+"/n"+ "Author is: " + mBook.getAuthor() + "/n" + "PublishTime is: " + mBook.getPublishTime()); setContentView(mTextView); }}
<?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Welcome to Mr wei's blog." /><Buttonandroid:id="@+id/button1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Serializable"/><Buttonandroid:id="@+id/button2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Parcelable"/></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tutor.objecttran" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ObjectTranDemo" 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=".ObjectTranDemo1"></activity><activity android:name=".ObjectTranDemo2"></activity> </application> <uses-sdk android:minSdkVersion="7" /></manifest>