这个对象有很多成员变量,其中有的成员又是其他类的对象。例如下:class A
{
    int i;
    boolean b;
    String s;
};
class B {
    A a;
    int i;
    boolean b;
    String s;
    ……
};
  B b;我如何用Intent 将b传递到新的窗口呢?难到B类 非要实现  Bundle 或 Parcelable 或者 Serializable么?如果不去实现这几个接口,那么有什么办法用Intent传递b对象。别告诉我说 Intent.putExtras(i) ,Intent.putExtras(b),Intent.putExtras(s)……,即便是这样如何 Intent.putExtras(a)呢?

解决方案 »

  1.   

    对象要实现Parcelable 接口,发送是一样的,调用getParcelableExtra取得传递过来的对象 
      

  2.   

    转成字符串? 继承Intent?
      

  3.   

    Serializable这个是必需的。不然你只有把数据变成字符串了。
      

  4.   

    传输对象的类必须实现Parcelable或者Serializable接口,不然无法传输。
      

  5.   

    Intent intent=new Intent();
    intent.setClass(MainActivity.this,目标.class);
    MainActivity.this.startActivity(intent);
      

  6.   


    如果class B 实现了Serializable接口,但是要用Intent传递的话,那么class A 也需要实现Serializable接口。如果class B中有多个自定义的类成员,那么这几个类都需要去实现Serializable接口。如果这几个类中还有自定义的类,那么也需要实现Serializable接口。如下:
    class A
    {
    ……
    C c;
    }
    class C
    {
    ……
    D d;
    }
    那么A,B,C,D都需要实现Serializable接口,否则使用Intent传递的时候回报错。也就是说涉及到要传递的类,都需要Serializable接口,这样的话是不是很蛋疼呢。
      

  7.   

    对象要实现Parcelable 接口,发送是一样的,调用getParcelableExtra取得传递过来的对象