第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Android上將對象從一個活動傳遞到另一個活動?

如何在Android上將對象從一個活動傳遞到另一個活動?

慕村225694 2019-10-12 14:07:29
如何在Android上將對象從一個活動傳遞到另一個活動?我需要能夠在我的應(yīng)用程序中的多個活動中使用一個對象,它需要是同對象。做這件事最好的方法是什么?我嘗試過將對象設(shè)置為“公共靜態(tài)”,這樣它就可以被其他活動訪問,但出于某種原因,這并沒有切斷它。還有別的辦法嗎
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經(jīng)驗 獲得超4個贊

在創(chuàng)建意圖對象時,可以利用以下兩種方法在兩個活動之間傳遞對象。

腐散

可序列化

你可以讓你的類實現(xiàn)Parcelable系列化..然后,您可以在活動之間傳遞自定義類。我發(fā)現(xiàn)這很有用。

下面是我正在使用的代碼片段

CustomListing currentListing = new CustomListing();Intent i = new Intent();
Bundle b = new Bundle();b.putParcelable(Constants.CUSTOM_LISTING, currentListing);
i.putExtras(b);i.setClass(this, SearchDetailsActivity.class);startActivity(i);

新開始的活動代碼會是這樣的.。

Bundle b = this.getIntent().getExtras();if (b != null)
    mCurrentListing = b.getParcelable(Constants.CUSTOM_LISTING);



查看完整回答
反對 回復(fù) 2019-10-13
?
慕俠2389804

TA貢獻1719條經(jīng)驗 獲得超6個贊

類的子類。應(yīng)用并將共享對象存儲在那里。應(yīng)用程序?qū)ο髴?yīng)該在應(yīng)用程序的生存期內(nèi)存在,只要有一些活動組件。

從您的活動中,您可以通過以下方式訪問應(yīng)用程序?qū)ο?/trans>getApplication().


查看完整回答
反對 回復(fù) 2019-10-13
?
阿波羅的戰(zhàn)車

TA貢獻1862條經(jīng)驗 獲得超6個贊

這個答案是特定于要傳遞的對象具有嵌套類結(jié)構(gòu)的情況。使用嵌套的類結(jié)構(gòu),使其具有Parcelable或Serializable是有點乏味的。并且,序列化對象的過程是在Android上效率低下..考慮下面的例子,

class Myclass    {
  int a;
  class SubClass    {
       int b;
  }}

用谷歌的GSON圖書館,您可以直接將對象解析為JSON格式的字符串,并在使用后將其轉(zhuǎn)換回對象格式。例如,

MyClass src = new MyClass();Gson gS = new Gson();String target = gS.toJson(src); // Converts the object to a JSON String

現(xiàn)在,您可以將這個字符串作為一個StringExtra傳遞到具有活動意圖的活動中。

Intent i = new Intent(FromActivity.this, ToActivity.class);i.putExtra("MyObjectAsString", target);

然后在接收活動中,從字符串表示創(chuàng)建原始對象。

String target = getIntent().getStringExtra("MyObjectAsString");MyClass src = gS.fromJson(target, MyClass.class); // Converts the JSON String to an Object

它保持了原始類的清潔和可重用性。最重要的是,如果這些類對象是以JSON對象的形式從Web創(chuàng)建的,那么這個解決方案是非常高效和省時的。

更新


雖然上面解釋的方法在大多數(shù)情況下都有效,但出于明顯的性能原因,不要依賴Android的捆綁-額外的系統(tǒng)來傳遞對象。有許多解決方案使這一過程靈活有效,這里有幾個。每個人都有自己的優(yōu)點和缺點。

  1. Eventbus

  2. 奧托



查看完整回答
反對 回復(fù) 2019-10-13
  • 3 回答
  • 0 關(guān)注
  • 319 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號