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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android intent传递数据

發布時間:2024/4/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android intent传递数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說到intent傳遞數據,其實我是經常用到,不過之前用的都是簡單的傳遞String,int,boolean的簡單數據。昨天,我需要傳遞一個自定義的實體類時,發現自己不會,所以在網上搜索了一些資料,自己做了出來。現在把intent的使用整理一下,以后方便使用。

1.intent傳遞簡單數據。

  • 這個太簡單了,發送數據只需?intent.putExtra("key",?"value");??
  • 或者用bundle傳值,bundle.putString("key","value");intent.putExtras(bundel
  • 2.intent傳遞object對象

    2.1 使用Serializable方式

    這個,首先必須把自定義的類實現Serializable接口,

    用Serializable方式傳遞Object的語法:bundle.putSerializable(key,object);

    用Serializable方式接收Object的語法:object=(Object) getIntent().getSerializableExtra(key);
    2.2 使用Parcelable方式 前提:Object需要實現Parcelable接口 用Parcelable方式傳遞Object的語法:bundle.putParcelable(key,object); 用Parcelable方式接收Object的語法:object=(Object) getIntent().getParcelableExtra(key); 實現Parcelable接口的類比較復雜,Parcelable是個什么東西呢? Android提供了一種新的類型:Parcel,被用作封裝數據的容器,封裝后的數據可以通過Intent或IPC傳遞。 除了基本類型以外,只有實現了Parcelable接口的類才能被放入Parcel中。 實現Parcelable接口需要實現三個方法: 1)writeToParcel方法。該方法將類的數據寫入外部提供的Parcel中。 聲明:writeToParcel(Parcel dest, int flags)。 2)describeContents方法。直接返回0就可以。 3)靜態的Parcelable.Creator<T>接口,本接口有兩個方法:createFromParcel(Parcel in) 實現從in中創建出類的實例的功能。
    package com.wirelessqa.testintent; import android.os.Parcel;
    import android.os.Parcelable; /**
    ?* Object需要實現Parcelable接口
    ?* @author bixiaopeng 2013-2-18 上午11:32:19
    ?*/
    public class ParInfo implements Parcelable{
    ??? private String name;
    ??? private String website;
    ??? private String weibo;
    ??? public ParInfo(){ }
    ??? public ParInfo(String name, String website, String weibo){
    ??????? this.name = name;
    ??????? this.website = website;
    ??????? this.weibo = weibo;
    ??? } public String getName() {
    ??????? return name;
    ??? } public void setName(String name) {
    ??????? this.name = name;
    ??? } public String getWebsite() {
    ??????? return website;
    ??? } public void setWebsite(String website) {
    ??????? this.website = website;
    ??? } public String getWeibo() {
    ??????? return weibo;
    ??? } public void setWeibo(String weibo) {
    ??????? this.weibo = weibo;
    ??? }
    ??? @Override
    ??? public int describeContents() {
    ??????? // TODO Auto-generated method stub
    ??????? return 0;
    ??? }
    ??? //該方法將類的數據寫入外部提供的Parcel中。
    ??? @Override
    ??? public void writeToParcel(Parcel dest, int flags) {
    ??????? dest.writeString(name);
    ??????? dest.writeString(website);
    ??????? dest.writeString(weibo);
    ??? } public static final Parcelable.Creator<ParInfo> CREATOR? = new Creator<ParInfo>() {
    ??????? //實現從source中創建出類的實例的功能
    ??????? @Override
    ??????? public ParInfo createFromParcel(Parcel source) {
    ??????????? ParInfo parInfo? = new ParInfo();
    ??????????? parInfo.name = source.readString();
    ??????????? parInfo.website= source.readString();
    ??????????? parInfo.weibo = source.readString();
    ??????????? return parInfo;
    ??????? }
    ??????? //創建一個類型為T,長度為size的數組
    ??????? @Override
    ??????? public ParInfo[] newArray(int size) {
    ??????????? return new ParInfo[size];
    ??????? }
    ??? };?? }

    3.intent傳遞list<object>數據。 首先,object需要實現Serializable接口, 然后發送數據intent.putExtra("listobj",?(Serializable)?listObj);? 接收數據?ArrayList<SerInfo>?listObj?=??(ArrayList<SerInfo>)?getIntent().getSerializableExtra("listobj");?
    intent傳遞數據就講完了。
    就這么簡單。



    

    總結

    以上是生活随笔為你收集整理的android intent传递数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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