Android中为了能够在Activity之间传递值,需要只用Intent中的put函数。

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

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


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

package com.zeph.android.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;}@Overridepublic int describeContents() {return 0;}@Overridepublic void writeToParcel(Parcel parcel, int flag) {parcel.writeString(name);parcel.writeInt(age);parcel.writeString(profession);}public static final Creator CREATOR = new Creator() {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类。

package com.zeph.android.Parcelable;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;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);myButton = (Button) findViewById(R.id.myButton);myButton.setOnClickListener(new OnClickListener() {@Overridepublic 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类。

package com.zeph.android.Parcelable;import android.app.Activity;import android.os.Bundle;public class GetParcelableActivity extends Activity {@Overrideprotected 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());}}

更多相关文章

  1. C语言函数的递归(上)
  2. android中webView使用总结---飞速浏览器实现基础.
  3. Android(安卓)Studio使用lambda
  4. 8.16 提炼参数对象
  5. Android中Calendar类的用法总结
  6. Android(安卓)HAL实现3——基于Manager的HAL设计
  7. Android(安卓)SQLite使用SQLiteOpenHelper类对数据库进行操作
  8. Android通过AIDL实现接听电话、挂断电话操作 | 拨打电话
  9. AndroidMediaRecorder架构详解

随机推荐

  1. Linux基础知识总结
  2. linux环境下写C++操作mysql(二)
  3. Linux生成随机字符串
  4. 在VNC远程桌面环境Xfce4中Tab键失效的解
  5. Linux防火墙配置
  6. Shell脚本编写简明教程
  7. 手把手教你在ubuntu下创建桌面快捷方式
  8. 在Linux里设置用户环境变量的方法
  9. 来点基础的--诡异的极客们的符号--流、管
  10. Linux Box上运行哪个SQL服务器?