2016-03-23 42 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

相关问题