`

Activitie之间传对象,通过Parcelable

 
阅读更多

对象必须实现Serializable,对象代码如下:

Java代码
  1. importjava.io.Serializable;
  2. importandroid.graphics.drawable.Drawable;
  3. <spanstyle="white-space:normal;"><prename="code"class="java">//传送的对象</pre>
  4. </span>
  5. publicclassMyApplicationInfoextendsObjectimplementsSerializable{
  6. //Yourcode
  7. }

自定义:AppParcelable

Java代码
  1. importandroid.os.Parcel;
  2. importandroid.os.Parcelable;
  3. importcom.tcad.marketassistant.vo.MyApplicationInfo;
  4. publicclassAppParcelableimplementsParcelable{
  5. privateMyApplicationInfoinfo;
  6. publicAppParcelable(Parcelsource){
  7. info=(MyApplicationInfo)source.readValue(MyApplicationInfo.class.getClassLoader());
  8. }
  9. publicAppParcelable(MyApplicationInfoinfo){
  10. this.info=info;
  11. }
  12. publicintdescribeContents(){
  13. return0;
  14. }
  15. publicvoidwriteToParcel(Parceldest,intflags){
  16. dest.writeValue(info);
  17. }
  18. publicstaticfinalParcelable.Creator<AppParcelable>CREATOR=newParcelable.Creator<AppParcelable>(){
  19. publicAppParcelablecreateFromParcel(Parcelsource){
  20. returnnewAppParcelable(source);
  21. }
  22. publicAppParcelable[]newArray(intsize){
  23. //returnnewAppParcelable[size];
  24. thrownewUnsupportedOperationException();
  25. }
  26. };
  27. publicMyApplicationInfogetInfo(){
  28. returninfo;
  29. }
  30. }

调用代码,发送:

Java代码
  1. AppParcelableparcelable=newAppParcelable(info);
  2. //Info为MyApplicationInfo对象
  3. //发送对象
  4. intent.putExtra("app_parcelable",parcelable);
  5. startActivity(intent);

接收:

Java代码
  1. AppParcelablep=getIntent().getParcelableExtra("app_parcelable");
  2. MyApplicationInfoinfo=p.getInfo();

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics