簡體   English   中英

通過 Intent 發送自定義 ArrayList

[英]Sending a custom ArrayList through an Intent

我在使用自定義 ArrayList 並嘗試在活動之間移動它們時遇到問題。 首先,我在第一個活動中聲明了一個自定義 ArrayList:

private ArrayList<String[]> dataArray = new ArrayList<String[]>();

其中 ArrayList 的每個元素都是一個 String 元素數組。

接下來,我使用 putExtra() 將其放入意圖中:

Intent int1 = new Intent(this, ManualModeActivity.class);
int1.putExtra(EXTRA_MESSAGE, dataArray);

然后,當我嘗試在我的第二個活動中恢復 ArrayList 時,我發現ArrayList<String>元素只有一個 getStringArrayListExtra() 方法,因此它不適用於ArrayList<String[]> 我一直在搜索這個,我找到的都是自定義對象的例子,其中解決方案是在它們上實現 Parcelable 或 Serialize 接口。 我怎么能用像 String[] 這樣的“默認”對象來做到這一點? (或者,由於我仍然是 Java 新手,我是否遺漏了一些關於接口如何工作的信息?)

如果 E 類型是Serializable ,您可以以相同的方式傳遞ArrayList<E>

您將調用putExtra (String name, Serializable value)進行存儲,並getSerializableExtra (String name)進行檢索。

例子:

ArrayList<String> myList = new ArrayList<String>();
intent.putExtra("mylist", myList);
In the other Activity:

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");

您從第一個活動發送數據的代碼是正確的。

要在第二個活動中接收數據,請使用intentgetSerializableExtra()方法,例如:

ArrayList<String[]> data = (ArrayList<String[]>) getIntent().getSerializableExtra(EXTRA_MESSAGE);

暫無
暫無

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

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