Java 如何在活动之间传输对象引用
我在avtivity1中新建了一个对象。我想将它传输到activity2。并且只传输引用,不复制它。我需要怎么做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
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