[英]How to pass an object without intent
目前,我可以將名為Exhibit的對象傳遞到另一個Activity中,方法是將其放入putExtras中並啟動意圖。 現在,如果我要將對象傳遞給另一個對象怎么辦?
例如,我這樣發送:
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");
在這里,您可以看到我正在將Exhibitions.get(position)傳遞給特定的類,並以新活動的形式開始該類,然后新活動將其接收。 因此,如何在不啟動對象的情況下將對象傳遞給另一個類(不是此類)?
非常感謝!
如果您不希望在應用程序啟動期間保留對象,則可以將其設置為應用程序類的靜態實例變量:
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
您可以只在對象上調用方法:
otherObject.someMethod(dene);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.