亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android系列之Intent傳遞對象的幾種實例方法

2020-04-11 12:18:45
字體:
來源:轉載
供稿:網友

 在Android中intent傳遞對象主要有2種方式分別是,Bundle.putSerializable(Key,Object)和Bundle.putParcelable(Key, Object);當然這些Object是有一定的條件的,前者是實現了Serializable接口,而后者是實現了Parcelable接口,以下是我為大家做的一個實例
  首先我們建立一個工程項目命名為:ObjectTestDemo
  然后我們再修改main.xml布局文件,主要增加2個按鈕
view plaincopy to clipboardprint?

復制代碼 代碼如下:

  < ?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 Jesson's blog."

   />

   < Button

   android:id="@+id/button1"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="Serializable"

   />

   < Button

   android:id="@+id/button2"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="Parcelable"

   />

   < /LinearLayout>

   < ?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 jesson's blog."

   />

   < Button

   android:id="@+id/button1"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="Serializable"

   />

   < Button

   android:id="@+id/button2"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:text="Parcelable"

   />

   < /LinearLayout>
  [code]
接下來我們開始對工程進行實現,分別建立Person.java實現Serializable接口,另一個Book.java實現Parcelable接口

[code]
package com.test.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.test.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.test.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 CREATOR = new Creator() {

 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.test.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 CREATOR = new Creator() {

 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);

 }

 }


修改ObjectTranDemo.java,并且新建兩個Activity,一個是ObjectTranDemo1.java,別一個是ObjectTranDemo2.java.分別用來顯示Person對像數據,和Book對象數據

代碼

復制代碼 代碼如下:

package com.test.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.test.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.test.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() + ""+

   "You age is: " + mPerson.getAge());

   setContentView(mTextView);

   }


代碼
復制代碼 代碼如下:

package com.test.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() + ""+

 "You age is: " + mPerson.getAge());

 setContentView(mTextView);

 }

 }


代碼
復制代碼 代碼如下:

package com.test.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()+""+

 "Author is: " + mBook.getAuthor() + "" +

 "PublishTime is: " + mBook.getPublishTime()); setContentView(mTextView);

 }

 }

復制代碼 代碼如下:

 package com.test.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()+""+

   "Author is: " + mBook.getAuthor() + "" +

   "PublishTime is: " + mBook.getPublishTime());

   setContentView(mTextView);

   }

   }

下面是最重要的環節:修改AndroidManifest.xml文件(將兩個新增的Activity,ObjecttestDemo1,ObjecttestDemo2)申明一下代碼如下(第14,15行):

代碼

復制代碼 代碼如下:

< ?xml version="1.0" encoding="utf-8"?>

< manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.test.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=".ObjecttestDemo1">< /activity>

 < activity android:name=".ObjecttestDemo2">< /activity>

 < /application>

 < uses-sdk android:minSdkVersion="7" />

 < /manifest>

 < ?xml version="1.0" encoding="utf-8"?>

 < manifest xmlns:android="http://schemas.android.com/apk/res/android"

 package="com.test.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=".ObjecttestDemo1">< /activity>

 < activity android:name=".ObjecttestDemo2">< /activity>

 < /application>

 < uses-sdk android:minSdkVersion="7" />

 < /manifest>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美综合在线第二页| 久久久精品久久| 日韩成人av网址| 日韩av在线免费| 欧美视频中文字幕在线| 亚洲自拍偷拍区| 日韩成人黄色av| 日本国产欧美一区二区三区| 岛国av在线不卡| 九九热r在线视频精品| 国产网站欧美日韩免费精品在线观看| 日韩欧美第一页| 91久久精品久久国产性色也91| 日韩av在线免费观看一区| 欧美精品制服第一页| 精品国产精品自拍| 91精品国产高清久久久久久久久| 九九久久久久99精品| 日韩高清免费观看| 国模视频一区二区三区| 亚洲美女精品成人在线视频| 亚洲精品av在线| 中文字幕日韩欧美在线| 91成人在线播放| 久久久国产精彩视频美女艺术照福利| 狠狠操狠狠色综合网| 日韩中文av在线| 一级做a爰片久久毛片美女图片| 美女精品视频一区| 亚洲男人天堂久| 国产91精品视频在线观看| 性欧美在线看片a免费观看| 精品呦交小u女在线| 欧美最猛性xxxxx亚洲精品| 亚洲男人天堂网站| 在线视频欧美日韩| 欧美疯狂性受xxxxx另类| 91在线免费网站| 伊是香蕉大人久久| 亚洲欧美日韩国产精品| 欧美国产日韩一区二区在线观看| 国产激情视频一区| 国产日韩中文在线| 97婷婷大伊香蕉精品视频| 国产日韩精品综合网站| 久久精品亚洲国产| 国产综合色香蕉精品| 国产精品a久久久久久| 欧美精品电影在线| 国产欧美精品在线| 国产欧美韩国高清| 欧美激情奇米色| 欧美激情一区二区久久久| 国产在线观看精品一区二区三区| 亚洲男女性事视频| 欧美视频13p| 久久久久久久国产| 国产精品免费久久久久久| 黑人欧美xxxx| 久久99亚洲热视| 成人黄色免费网站在线观看| 2019国产精品自在线拍国产不卡| 中文字幕亚洲自拍| 亚洲午夜性刺激影院| 亚洲成人黄色在线| 午夜精品久久久久久久久久久久久| 久久免费少妇高潮久久精品99| 欧洲午夜精品久久久| 尤物九九久久国产精品的特点| 亚洲美女av电影| 欧美日本国产在线| 国产伊人精品在线| 亚洲人成免费电影| 国产精品久久久久久亚洲影视| 国产精品视频播放| 538国产精品一区二区免费视频| 91大神在线播放精品| 免费97视频在线精品国自产拍| 欧洲日韩成人av| 欧美高跟鞋交xxxxxhd| 欧美大学生性色视频| 综合欧美国产视频二区| 欧美在线一区二区视频| 亚洲国产一区二区三区在线观看| 国产精品自产拍在线观看| 欧美性xxxxx极品| 亚洲精品国产免费| 亚洲精品欧美日韩专区| 尤物99国产成人精品视频| 91超碰中文字幕久久精品| 久久精品91久久香蕉加勒比| 国产精品高潮粉嫩av| 欧美日韩国产页| 日韩男女性生活视频| 精品成人69xx.xyz| 久久久久久久久电影| 亚洲性猛交xxxxwww| 欧美日韩激情小视频| 日韩电影中文字幕av| 91精品国产99久久久久久| 综合久久五月天| 激情懂色av一区av二区av| 九色精品免费永久在线| 亚洲a在线播放| 国产一区av在线| 岛国av一区二区在线在线观看| 青青草国产精品一区二区| 久久精品国产99国产精品澳门| 亚洲最大的av网站| 亚洲网在线观看| 亚洲精品国产品国语在线| 亚洲一区二区三区视频| 日韩欧美在线国产| 亚洲一区av在线播放| 国产欧美日韩最新| 精品国产一区二区三区在线观看| 国产精品白嫩美女在线观看| 亚洲日本中文字幕| 欧美激情亚洲激情| 亚洲视频欧美视频| 亚洲精品免费网站| 日韩电影视频免费| 高清欧美性猛交xxxx| 欧美一级淫片videoshd| 国产精品1234| 免费99精品国产自在在线| 成人免费淫片视频软件| 欧美猛少妇色xxxxx| 国产精品永久免费| 91精品国产综合久久久久久蜜臀| 中国日韩欧美久久久久久久久| 亚洲欧美国产视频| 国产精品对白刺激| 欧美最猛性xxxxx亚洲精品| 欧美激情在线观看视频| 中文字幕国产亚洲| 欧美专区福利在线| 91在线色戒在线| 欧美亚洲在线播放| 国产精品美女999| 国产日产久久高清欧美一区| 亚洲国产成人精品久久久国产成人一区| 亚洲免费电影在线观看| 国产日韩欧美在线播放| 亚洲欧洲一区二区三区久久| 国产成人精品优优av| 久久精品视频中文字幕| 91中文字幕在线观看| 欧美激情videos| 狠狠做深爱婷婷久久综合一区| 欧美影院成年免费版| 国产精品白嫩初高中害羞小美女| 亚洲一区二区久久久久久| 欧美电影免费观看电视剧大全| 亚洲综合成人婷婷小说| 狠狠久久五月精品中文字幕| 日韩av在线播放资源| 久久精品国产久精国产思思| 欧美日韩一区二区精品| 欧美精品aaa| 国产精品免费视频久久久| 日韩精品视频在线观看网址| 国产在线精品自拍| 精品久久久久久久久久ntr影视|