日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

​Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]

發布時間:2025/4/16 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ​Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android中如何使用Intent在Activity之間傳遞對象[使用Serializable或者Parcelable]


????? 在Android中的不同Activity之間傳遞對象,我們可以考慮采用Bundle.putSerializable(Key,Object);也可以考慮采用Bundle.putParcelable(Key, Object);其中前面一種方法中的Object要實現Serializable接口,后面一種方法中的Object要實現Parcelable接口。下面我們以一個完整的例子來說明。

1.新建一個Android的工程,其中該工程的目錄結構如下圖:

?

2. 修改main.xml布局文件。布局文件的源碼如下:


[c-sharp]?view plaincopy

  • <?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="@string/hello"??

  • ????/>??

  • ????<Button??

  • ???????android:id="@+id/serButton"??

  • ???????android:layout_width="fill_parent"??

  • ???????android:layout_height="wrap_content"??

  • ???????android:text="Serializable"/>??

  • ????<Button??

  • ???????android:id="@+id/parButton"??

  • ???????android:layout_width="fill_parent"??

  • ???????android:layout_height="wrap_content"??

  • ???????android:text="Parcelable"/>??

  • </LinearLayout>??


  • 3.在工程的src目錄下新建一個實體類包,命名為com.andy.entity.同時在該package中添加兩個實體類,一個是Person.java,該類實現Serializable接口;一個是Police.java,該類實現Parcelable接口。代碼分別如下:

    Person.java:


    [c-sharp]?view plaincopy

  • package?com.andy.entity;??

  • ??

  • import?java.io.Serializable;??

  • ??

  • public?class?Person?implements?Serializable?{??

  • ??????

  • ????private?static?final?long?serialVersionUID?=?-6919461967497580385L;??

  • ??????

  • ????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;??

  • ????}??

  • }??


  • Police.java:


    [c-sharp]?view plaincopy

  • package?com.andy.entity;??

  • ??

  • import?android.os.Parcel;??

  • import?android.os.Parcelable;??

  • ??

  • public?class?Police?implements?Parcelable?{??

  • ??????

  • ????private?String?name;??

  • ????private?int?workTime;??

  • ??

  • ????public?String?getName()?{??

  • ????????return?name;??

  • ????}??

  • ??

  • ????public?void?setName(String?name)?{??

  • ????????this.name?=?name;??

  • ????}??

  • ??

  • ????public?int?getWorkTime()?{??

  • ????????return?workTime;??

  • ????}??

  • ??

  • ????public?void?setWorkTime(int?workTime)?{??

  • ????????this.workTime?=?workTime;??

  • ????}??

  • ??????

  • ????public?static?final?Parcelable.Creator<Police>?CREATOR?=?new?Creator<Police>()?{??

  • ??

  • ????????@Override??

  • ????????public?Police?createFromParcel(Parcel?source)?{??

  • ????????????Police?police?=?new?Police();??

  • ????????????police.name?=?source.readString();??

  • ????????????police.workTime?=?source.readInt();??

  • ????????????return?police;??

  • ????????}??

  • ??

  • ????????@Override??

  • ????????public?Police[]?newArray(int?size)?{??

  • ????????????return?new?Police[size];??

  • ????????}??

  • ????};??

  • ??

  • ????@Override??

  • ????public?int?describeContents()?{??

  • ????????return?0;??

  • ????}??

  • ??

  • ????@Override??

  • ????public?void?writeToParcel(Parcel?parcel,?int?flags)?{??

  • ????????parcel.writeString(name);??

  • ????????parcel.writeInt(workTime);??

  • ????}??

  • }??


  • 4.在包com.andy.testdemo中修改TestActivity.java類,同時在該包中添加類SerializableDemo和ParcelableDemo,分別繼承了Activity類和分別顯示Person對象和Police對象的數據。代碼如下:


    [c-sharp]?view plaincopy

  • package?com.andy.testdemo;??

  • ??

  • import?com.andy.entity.Person;??

  • import?com.andy.entity.Police;??

  • ??

  • import?android.app.Activity;??

  • import?android.content.Intent;??

  • import?android.os.Bundle;??

  • import?android.view.View;??

  • import?android.widget.Button;??

  • ??

  • public?class?TestActivity?extends?Activity?{??

  • ????private?Button?sButton,pButton;??

  • ????public?final?static?String?SER_KEY?=?"com.andy.ser";??

  • ????public?final?static?String?PAR_KEY?=?"com.andy.par";??

  • ??????

  • ????/**?Called?when?the?activity?is?first?created.?*/??

  • ????@Override??

  • ????public?void?onCreate(Bundle?savedInstanceState)?{??

  • ????????super.onCreate(savedInstanceState);??

  • ????????setContentView(R.layout.main);??

  • ??????????

  • ????????sButton?=?(Button)findViewById(R.id.serButton);??

  • ????????sButton.setOnClickListener(new?View.OnClickListener()?{??

  • ??????????????

  • ????????????@Override??

  • ????????????public?void?onClick(View?v)?{??

  • ????????????????SerializeMethod();??

  • ????????????}??

  • ????????});??

  • ??????????

  • ????????pButton?=?(Button)findViewById(R.id.parButton);??

  • ????????pButton.setOnClickListener(new?View.OnClickListener()?{??

  • ??????????????

  • ????????????@Override??

  • ????????????public?void?onClick(View?v)?{??

  • ????????????????PacelableMethod();??

  • ????????????}??

  • ????????});??

  • ????}??

  • ??????

  • ????/**?

  • ?????*?Serializeable傳遞對象的方法?

  • ?????*/??

  • ????private?void?SerializeMethod(){??

  • ????????Person?mPerson?=?new?Person();?????

  • ????????mPerson.setName("andy");?????

  • ????????mPerson.setAge(26);?????

  • ????????Intent?mIntent?=?new?Intent(this,SerializableDemo.class);?????

  • ????????Bundle?mBundle?=?new?Bundle();?????

  • ????????mBundle.putSerializable(SER_KEY,mPerson);?????

  • ????????mIntent.putExtras(mBundle);?????

  • ??????????

  • ????????startActivity(mIntent);?????

  • ????}??

  • ??????

  • ????/**?

  • ?????*?Pacelable傳遞對象方法??

  • ?????*/??

  • ????private?void?PacelableMethod(){??

  • ????????Police?mPolice?=?new?Police();?????

  • ????????mPolice.setName("I?am?Police");????????

  • ????????mPolice.setWorkTime(2008);?????

  • ????????Intent?mIntent?=?new?Intent(this,ParcelableDemo.class);?????

  • ????????Bundle?mBundle?=?new?Bundle();?????

  • ????????mBundle.putParcelable(PAR_KEY,?mPolice);?????

  • ????????mIntent.putExtras(mBundle);?????

  • ???????

  • ????????startActivity(mIntent);?????

  • ????}??

  • }??


  • SerializableDemo.java類


    [c-sharp]?view plaincopy

  • package?com.andy.testdemo;??

  • ??

  • import?com.andy.entity.Person;??

  • ??

  • import?android.app.Activity;??

  • import?android.os.Bundle;??

  • import?android.widget.TextView;??

  • ??

  • public?class?SerializableDemo?extends?Activity?{??

  • ??

  • ????@Override??

  • ????public?void?onCreate(Bundle?savedInstanceState)?{??

  • ????????super.onCreate(savedInstanceState);??

  • ??????????

  • ????????TextView?mTextView?=?new?TextView(this);?????

  • ????????Person?mPerson?=?(Person)getIntent().getSerializableExtra(TestActivity.SER_KEY);?????

  • ????????mTextView.setText("You?name?is:?"?+?mPerson.getName()?+?"/n"+?????

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

  • ??

  • ????????setContentView(mTextView);?????

  • ????}??

  • ??

  • }??


  • ParcelableDemo.java類:


    [c-sharp]?view plaincopy

  • package?com.andy.testdemo;??

  • ??

  • import?com.andy.entity.Police;??

  • ??

  • import?android.app.Activity;??

  • import?android.os.Bundle;??

  • import?android.widget.TextView;??

  • ??

  • public?class?ParcelableDemo?extends?Activity?{??

  • ??

  • ????@Override??

  • ????public?void?onCreate(Bundle?savedInstanceState)?{??

  • ????????super.onCreate(savedInstanceState);??

  • ??????????

  • ????????TextView?mTextView?=?new?TextView(this);?????

  • ????????Police?mPolice?=?(Police)getIntent().getParcelableExtra(TestActivity.PAR_KEY);?????

  • ????????mTextView.setText("Police?name?is:?"?+?mPolice.getName()+"/n"+?????

  • ??????????????????????????"WorkTime?is:?"?+?mPolice.getWorkTime()?+?"/n");?????

  • ????????setContentView(mTextView);?????

  • ????}??

  • ??

  • }??


  • 5.在AndroidManifest.xml文件中為新添加的兩個Activity進行注冊。


    [c-sharp]?view plaincopy

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

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

  • ??????package="com.andy.testdemo"??

  • ??????android:versionCode="1"??

  • ??????android:versionName="1.0">??

  • ????<application?android:icon="@drawable/icon"?android:label="@string/app_name">??

  • ????????<activity?android:name=".TestActivity"??

  • ??????????????????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=".SerializableDemo"/>??

  • ????????<activity?android:name=".ParcelableDemo"/>??

  • ????</application>??

  • ????<uses-sdk?android:minSdkVersion="8"?/>??

  • ??

  • </manifest>???


  • 6.運行程序查看效果圖:

    【1】主界面截圖:

    【2】點擊Serializable按鈕的效果

    【3】點擊Parcelable按鈕的效果

    ?

    =========================================================================

    以上是如何采用Intent在不同的Activity之間傳遞對象的例子。


    轉載于:https://blog.51cto.com/7990064/1530479

    總結

    以上是生活随笔為你收集整理的​Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产成人福利 | 欧美日韩成人在线视频 | 红桃视频成人在线 | 亚洲午夜无码久久 | 日日骚一区| 日韩免费视频一区二区视频在线观看 | 综合色综合 | 老司机黄色片 | 亚洲精品字幕在线观看 | 亚洲一区二区在线 | 成人91免费视频 | 伊人久久精品 | 欧美一区二区国产 | 久久久久中文字幕 | 日本黄色电影网址 | 性xxx欧美 | h色视频在线观看 | 性色av一区二区三区在线观看 | 男生和女生差差视频 | 成人毛片在线精品国产 | 91网址入口 | 国产夫妻性生活视频 | 欧美片网站yy | 欧美亚洲网站 | 中文字幕三级视频 | 国产精品无码久久久久一区二区 | 国产第九页 | 91浏览器在线观看 | 五月天精品视频 | 九九亚洲视频 | 欧美三级午夜理伦三级中视频 | 波多野结衣中文字幕在线 | 国产一在线观看 | 三级小说视频 | 久久久久久久久91 | 日产久久久久久 | 操xxxx | 日韩激情在线播放 | 官场艳妇疯狂性关系 | 五十路av | 国产人妻人伦精品1国产盗摄 | 欧美一级一区二区三区 | 国产精品午夜福利 | 三上悠亚中文字幕在线播放 | 久久精品区 | 久热av在线| 男女又爽又黄 | 97自拍偷拍| 免费成人小视频 | 国产成人自拍视频在线观看 | 国产黄a三级三级三级 | 51成人做爰www免费看网站 | 超碰超碰在线 | 国产网红在线观看 | 中国丰满人妻videoshd | 伊人网亚洲 | 一级黄色淫片 | 欧美人吸奶水吃奶水 | 五十路息子 | 色av综合网 | av有声小说一区二区三区 | 中文字幕日韩电影 | 伊人网视频 | 狠狠插综合 | 天天想你在线观看完整版高清 | 国产小视频在线看 | 日韩中文在线一区 | 天天天天天干 | 国产精品入口久久 | 自拍偷拍第八页 | 国产精品天美传媒沈樵 | 中国老头性行为xxxx | 污污网站在线看 | 蜜臀久久99精品久久久无需会员 | 亚洲人成在线播放 | 午夜影视剧场 | 日韩精品一区二区三区国语自制 | 国产精品人妖 | 永久影院| 最新中文字幕 | 欧美国产在线视频 | 嫩草影院菊竹影院 | 精品熟女一区 | 337p粉嫩大胆色噜噜狠狠图片 | 日日爽夜夜爽 | 黄色小视频在线 | 国产ts三人妖大战直男 | 成年人一级片 | www.黄色av | 久久韩日 | 玖草在线 | 欧洲精品视频在线观看 | 国产在线观看 | 99久久99久久免费精品蜜臀 | 一区二区三区欧美在线 | 国产成人精品久久 | 亚洲九区 | 美女张开腿让男人操 | 国产三级漂亮女教师 |