Java 如何在活动之间传输对象引用

Java 如何在活动之间传输对象引用,java,android,Java,Android,我在avtivity1中新建了一个对象。我想将它传输到activity2。并且只传输引用,不复制它。我需要怎么做 public class MyActivity1 extends Activity{ public void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); setContentView(R.layout.main); myButton1 = (Button)fin

我在avtivity1中新建了一个对象。我想将它传输到activity2。并且只传输引用,不复制它。我需要怎么做

public class MyActivity1 extends Activity{
public void onCreate(Bundle saveInstanceState){
    super.onCreate(saveInstanceState);
    setContentView(R.layout.main);

    myButton1 = (Button)findViewById(R.id.ButtonId1);
    myButton1.setText("goto");
    myButton1.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v){

            MyObject myObject = new MyObject();
            //how to transmit the object reference to OtherActiviy
            //I want only transmit,not copy the object

            Intent intent = new Intent();
            intent.setClass(MyActivity1.this, OtherActiviy.class);
            startActivity(intent);
        }
    });
}

}您可以这样做:

  public class MyActivity1 extends Activity{
  public void onCreate(Bundle saveInstanceState){
    super.onCreate(saveInstanceState);
    setContentView(R.layout.main);

    myButton1 = (Button)findViewById(R.id.ButtonId1);
    myButton1.setText("goto");
    myButton1.setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v){


             MyObject myObject = new MyObject();
            //how to transmit the object reference to OtherActiviy
            //I want only transmit,not copy the object

            Intent intent = new Intent();
            intent.putExtra("MYObject",myObject);
            intent.setClass(MyActivity1.this, OtherActiviy.class);
            startActivity(intent);
        }
    });
}

注意:myObject应该是可打包的。

您可以将扩展可打包或序列化的对象放入intent。
或者,一个糟糕的方法是在Activity1上由Gson将对象解析为字符串,并在Activity2上将字符串转换为对象。

为什么被否决。我写错什么了吗?他想要的是保留对旧对象的引用,而不是复制它。Parcable将创建一个新对象。如果MyObject类是可序列化的,他可以执行iot