2016-03-23 57 views
0

在活動之間發送ArrayList<float[]>最簡單的方法是什麼?在活動之間發送ArrayList <float[]>(android)

是否可以使用SharedPreferencesputExtra發送?

我只看到發送ArrayList<String>ArrayList<Int>的示例,並且這些選項是通過內置的。 putStringArrayList

回答

2

最好的方法是將它作爲一個額外的添加到意圖的捆綁。這是因爲Intent extras是專門爲在活動之間傳遞參數而創建的。

投入額外

ArrayList<float[]> list = new ArrayList<>(); 
Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
i.putExtra("arg_key", list); 

得到額外

ArrayList<float[]> list = (ArrayList<float[]>) getIntent().getSerializableExtra("arg_key"); 

這就是說,如果數據是在數據庫反正是持久的,你只需從數據庫中檢索。因爲它是用於存儲標誌,標記,應用程序設置等。我不會爲此使用SharedPreferences

UPDATE

如果你想通過不是由一個Intent的額外支持,是一個參數不是本地Serializable,看看Parcelable。您可以在任何POJO中實施Parcelable以允許將它們添加到Bundle。 Parcelable也比Serializable更快。

+0

謝謝你的回答。但是,這解釋瞭如何發送浮點數組,但不是浮點數組的ArrayList? – sonnert

+0

我已經更新了我的答案。因爲'ArrayList'和'float []'都是'Serializable',所以使用serializable應該可以工作。 – Kevin

+0

謝謝!它像一個魅力。 – sonnert

相關問題