Android实现Parcelable对象序列化的实例

本文介绍了如何在Android中利用Parcelable接口实现对象的序列化,以便于在Activity间高效传递。通过示例代码,展示了如何将类对象转换为二进制流,提高数据传输效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               

bundle.putParcelable可以实现传递对象,但是这个对象的类必须实现Parcelable接口才能够使用。

下面是一个简单的在Activity之间传递对象的例子。

parcel实现参数的序列化,把类对象序列化为齐位的二进制流,提高传输的效率。


Parcelable类。最主要的类,也就是我们要传送的对象的类,需要实现Parcelable接口。

import android.os.Parcel;  import android.os.Parcelable;    public class BenParcelable implements Parcelable {        public String name;        public int age;        public String profession;        public BenParcelable(String name, int age, String profession) {          this.name = name;          this.age = age;          this.profession = profession;      }        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;      }        public String getprofession() {          return profession;      }        public void setprofession(String profession) {          this.profession = profession;      }        @Override      public int describeContents() {          return 0;      }        @Override      public void writeToParcel(Parcel parcel, int flag) {          parcel.writeString(name);          parcel.writeInt(age);          parcel.writeString(profession);      }        public static final Creator<BenParcelable> CREATOR = new Creator<BenParcelable>() {          public BenParcelable createFromParcel(Parcel in) {              return new BenParcelable(in);          }            public BenParcelable[] newArray(int size) {              return new BenParcelable[size];          }      };        private BenParcelable(Parcel in) {          name = in.readString();          age = in.readInt();          profession = in.readString();      }  }  

ParcelableActivity类,传递对象的Activity类。

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 ParcelableActivity extends Activity {        private Button myButton;        @Override      public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.main);            myButton = (Button) findViewById(R.id.myButton);            myButton.setOnClickListener(new OnClickListener() {                @Override              public void onClick(View arg0) {                    BenParcelable benParcelable = new BenParcelable("BenZeph", 23,                          "Java/Android Engineer");                    Intent intent = new Intent();                    intent.setClass(getApplicationContext(),                          GetParcelableActivity.class);                    Bundle bundle = new Bundle();                    bundle.putParcelable("Ben", benParcelable);                    intent.putExtras(bundle);                    startActivity(intent);                }          });      }  }  

GetParcelableActivity类,接收序列化对象的Activity类。

import android.app.Activity;  import android.os.Bundle;    public class GetParcelableActivity extends Activity {      @Override      protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.main);            BenParcelable parcelable = getIntent().getParcelableExtra("Ben");            System.out.println(parcelable.getName());            System.out.println(parcelable.getAge());                    System.out.println(parcelable.getprofession());        }    }  


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值