android传递对象有两种方式:

一种是Serializable和Parcelable

对于第一种方式:

import java.io.Serializable;


public class ShopData implements Serializable {
public String shopId;
public String name;
public String url;
public String info;


public String getShopId() {
return shopId;
}


public void setShopId(String shopId) {
this.shopId = shopId;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public String getUrl() {
return url;
}


public void setUrl(String url) {
this.url = url;
}


public String getInfo() {
return info;
}


public void setInfo(String info) {
this.info = info;
}


}

传递值的时候这样来传递:

[java] view plain copy
  1. <spanstyle="white-space:pre"></span>Intentintent=newIntent();
  2. ShopDatashopData=(ShopData)mAdapter.getItem(position);
  3. //intent.putExtra("detail",shopData);
  4. Bundlebundle=newBundle();
  5. bundle.putSerializable("shop",shopData);
  6. intent.putExtra("detail",shopData);
  7. intent.setClass(MainActivity.this,DetailShopActivity.class);
  8. MainActivity.this.startActivity(intent);
取值的时候: [java] view plain copy
  1. <spanstyle="white-space:pre"></span>Intentintent=getIntent();
  2. //ShopDatadata=intent.getParcelableExtra("detail");
  3. ShopDatadata=(ShopData)intent.getSerializableExtra("detail");

对于第二种方式: [java] view plain copy
  1. importandroid.os.Parcel;
  2. importandroid.os.Parcelable;
  3. publicclassShopDataimplementsParcelable{
  4. publicStringshopId;
  5. publicStringname;
  6. publicStringurl;
  7. publicStringinfo;
  8. publicShopData(Parcelin){
  9. readFromParcel(in);
  10. }
  11. publicShopData(){
  12. }
  13. publicstaticfinalParcelable.Creator<ShopData>CREATOR=newParcelable.Creator<ShopData>(){
  14. publicShopDatacreateFromParcel(Parcelin){
  15. returnnewShopData(in);
  16. }
  17. publicShopData[]newArray(intsize){
  18. returnnewShopData[size];
  19. }
  20. };
  21. @Override
  22. publicintdescribeContents(){
  23. return0;
  24. }
  25. @Override
  26. publicvoidwriteToParcel(Parceldest,intflags){
  27. dest.writeString(shopId);
  28. dest.writeString(name);
  29. dest.writeString(url);
  30. dest.writeString(info);
  31. }
  32. publicvoidreadFromParcel(Parcelin){
  33. shopId=in.readString();
  34. name=in.readString();
  35. url=in.readString();
  36. info=in.readString();
  37. }
  38. }

传递的时候这样写: [java] view plain copy
  1. <spanstyle="white-space:pre"></span>Intentintent=newIntent();
  2. ShopDatashopData=(ShopData)mAdapter.getItem(position);
  3. intent.putExtra("detail",shopData);
  4. intent.putExtra("detail",shopData);
  5. intent.setClass(MainActivity.this,DetailShopActivity.class);
  6. MainActivity.this.startActivity(intent);


取值的时候: [java] view plain copy
  1. <spanstyle="white-space:pre"></span>Intentintent=getIntent();
  2. ShopDatadata=intent.getParcelableExtra("detail");

更多相关文章

  1. Android(三)Android SDK无法更新解决方式
  2. Android ProgressDialog 最佳处理方式
  3. Android 轮询实现的三种方式
  4. android studio 3.1 Android Device Monitor 新的启动方式
  5. Android不同层次开启硬件加速的方式
  6. Android 的 Button 按钮实现的两种方式

随机推荐

  1. android混淆出错更新progurad
  2. Android源码在线阅读
  3. 如何在android画分析图(例如 柱状图、趋势
  4. android tablehost中tab中显示数字
  5. Android(安卓)SDK content Loader has en
  6. Android之父安迪·鲁宾:极客文化的代表
  7. Android中屏幕密度和图片大小的关系分析
  8. GridView的属性
  9. Android基础知识总结
  10. Android(安卓)Bundle类别