簡體   English   中英

如何無意地傳遞對象

[英]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);

請檢查此LINK1LINK2LINK3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM