关于 android Intent 传对象和对象数组的一些操作

直接开正题,Intent传递值就是平常那些很简单的,接下来介绍传递 对象,和 对象数组

 

1 .intent 传递自定义的 对象 –

实体类继承  Serializable

 

[java][/java] view plaincopy

[java][/java] view plaincopy

  1. public class AA implements Serializable{
  2.     public String  a;
  3.     public String  aa;
  4.     public String  aaa;
  5. }

intent塞入数据端

 

 

[java][/java] view plaincopy

  1. AA a = new AA();
  2. a.a=”a”;
  3. a.aa =”aa”;
  4. a.aaa = “aaa”;
  5. Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
  6. Bundle bu = new Bundle();
  7. bu.putSerializable(“enty”, a);
  8. in.putExtras(bu);
  9. startActivity(in);

intent 接收数据端

 

 

[java][/java] view plaincopy

  1. AA a =(AA)this.getIntent().getExtras().getSerializable(“enty”);
  2.     System.out.println(“a.a =”+  app.a);
  3.         System.out.println(“a.aa =”+  app.aa);
  4.         System.out.println(“a.aaa =”+  app.aaa);

 

 

实体类类继承  Parcelable

 

[java][/java] view plaincopy

  1. public class AA implements Parcelable{
  2.     public String  a;
  3.     public String  aa;
  4.     public String  aaa;
  5.     @Override
  6.     public int describeContents() {
  7.         return 0;
  8.     }
  9.     @Override
  10.     public void writeToParcel(Parcel parcel, int flags) {
  11.         parcel.writeString(a);
  12.         parcel.writeString(aa);
  13.         parcel.writeString(aaa);
  14.     }
  15.     public static final Parcelable.Creator<AA> CREATOR  = new Creator<AA>(){
  16.         @Override
  17.         public AA createFromParcel(Parcel source) {
  18.             AA app=  new AA();
  19.             app.a = source.readString();
  20.             app.aa = source.readString();
  21.             app.aaa = source.readString();
  22.             return app;
  23.         }
  24.         @Override
  25.         public AA[] newArray(int size) {
  26.             return new AA[size];
  27.         }
  28.     };
  29. }

intent塞入数据端

 

 

[java][/java] view plaincopy

  1.                      AA a = new AA();
  2. a.a=”a”;
  3. a.aa =”aa”;
  4. a.aaa = “aaa”;
  5. Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
  6. Bundle bu = new Bundle();
  7. bu.putParcelable(“enty”, a);
  8. in.putExtras(bu);
  9. startActivity(in);

接收数据端

 

 

[java][/java] view plaincopy

  1. // 可以这样app =(AA)this.getIntent().getParcelableExtra(“enty”);
  2.         //也可以这样写,上面的也是
  3.         app =(AA)this.getIntent().getExtras().getParcelable(“enty”);
  4.         System.out.println(“a.a =”+  app.a);
  5.         System.out.println(“a.aa =”+  app.aa);
  6.         System.out.println(“a.aaa =”+  app.aaa);

2。 下来是 自定义对象 数组传递

 

实体类类继承  Parcelable

intent塞入数据端

 

[java][/java] view plaincopy

  1.                   List<AA> list_aa =new ArrayList<AA>();
  2. AA a = new AA();
  3. a.a=”a”;
  4. a.aa =”aa”;
  5. a.aaa = “aaa”;
  6.                        AA a1 = new AA();
  7. a1.a=”a1″;
  8. a1.aa =”aa1″;
  9. a1.aaa = “aaa1”;
  10. list_aa.add(a);
  11. list_aa.add(a1);
  12. Intent in = new Intent().setClass(MainActivity.this, MainActivity1.class);
  13. Bundle bu = new Bundle();
  14. bu.putParcelableArrayList(“list”, (ArrayList<? extends Parcelable>) list_aa);  //—
  15. in.putExtras(bu);
  16. startActivity(in);

接收list数据端

 

 

[java][/java] view plaincopy

  1. List<AA> aa =this.getIntent().getExtras().getParcelableArrayList(“list”);
  2.             for (AA aa2 : aa) {
  3.                 System.out.println(“list_a.a = “+ aa2.a);
  4.                 System.out.println(“list_a.aa = “+ aa2.aa);
  5.                 System.out.println(“list_a.aaa = “+ aa2.aaa);
  6.                 System.out.println(“=================================”);
  7.             }

 

标签