目前,我可以将名为Exhibit的对象传递给另一个Activity,方法是将其放入putExtras并启动intent。现在,如果我想将对象传递给另一个对象怎么办?
例如我这样发送:
public void onListItemClick(ListView parent, View v, int position, long id) {
Intent i = new Intent(this, ExhibitOpen.class);
Bundle bundle = new Bundle();
bundle.putSerializable("MyClass", (Serializable) exhibits.get(position));
i.putExtras(bundle);
startActivity(i);
}
然后我收到:
Intent i = getIntent();
dene = (Exhibit)i.getSerializableExtra("MyClass");
在这里你可以看到我将exhibit.get(position)传递给某个类并将该类作为新活动启动,然后新活动接收它。那么,如何在不启动的情况下将对象传递给另一个类(不是这个类)?
非常感谢!
答案 0 :(得分:2)
如果您不希望在应用程序启动期间保留您的对象,则可以将其设置为应用程序类的静态实例变量:
public class MyApp extends Application {
private static Exhibit sExhibit;
public static void setExhibit(Exhibit exhibit) {
sExhibit = exhibit;
}
public static Exhibit getExhibit() {
return sHexhibit;
}
}
// To set the object:
MyApp.setExhibit(myExhibit);
// To retrieve it
Exhibit myExhibit = MyApp.getExhibit()
如果您不想扩展您的应用程序,您可以在任何级别或您的Exhibit模型中执行此操作,只要它更有意义。
如果您希望它在应用启动之间持续存在并且可以序列化,我会使用共享首选项来存储它:http://developer.android.com/guide/topics/data/data-storage.html#pref
答案 1 :(得分:1)
您只需在对象上调用方法:
otherObject.someMethod(dene);
答案 2 :(得分:0)