arraylist中的對象是在外部庫中定義的。該對象包含一些int值並且還包含一個float []。Android:如何將ArrayList <object>從活動傳遞到另一個
如何將所有ArrayList從一個活動傳遞給另一個? 謝謝!
順便說一下,我沒有控制對象類。
arraylist中的對象是在外部庫中定義的。該對象包含一些int值並且還包含一個float []。Android:如何將ArrayList <object>從活動傳遞到另一個
如何將所有ArrayList從一個活動傳遞給另一個? 謝謝!
順便說一下,我沒有控制對象類。
它取決於數組列表中的對象的類型。如果你有控制權並可以實現Parcelable,那麼你可以使用Intent.putParcelableArrayListExtra
。
另一種方法是擴展應用程序並將ArrayList存儲在那裏。然後它不需要在Intent中傳遞,並且應用程序中的所有活動都可以通過調用getApplication()
來訪問它。應用程序對象將在應用程序的整個生命週期中保持不變,其中存儲的任何數據也一樣。
編輯:
使用應用程序對象是:
MyApplication
)擴展android.app.Application
。聲明一個字段(我們稱之爲array
)來保存你的數組列表。<application>
標記中指定名稱MyApplication
。當系統爲您的應用程序創建流程時,將會創建一個MyApplication
的實例。((MyApplication) getApplication()).array
。你在第一個活動中初始化它,並在第二個活動中檢索它。另一種完全不同的方法是在某個類中聲明靜態單例。該文檔實際上推薦這比子類化應用程序更模塊化。這是一種破解,因爲它基本上是聲明一個全局變量。但是我認爲這不比將一個隨機數據放入一個Application對象中更麻煩。
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("nameOfArray",YOUR_ARRAY_LIST);
startActivity(intent);
putExtra似乎只能正常工作很少的值。你確定它也適用於ArrayList嗎? – wzb5210
public Intent putExtra(String name,Serializable value)它說它需要一個Serializable和一個ArrayList是一個序列化... –
我沒有控制它,所以我不得不放棄第一種方法。 我沒有得到第二種方法。如何擴展應用程序並存儲ArrayList。如何使用getApplication()?你能舉個例子嗎? – wzb5210
@ wzb5210 - 我已經用一些細節更新了我的答案。 –
非常感謝!我會試着看看它是否有效。 – wzb5210