全部,
考虑以下数据结构:
class Foo
{
private int m1;
private double m2;
};
class Bar
{
private int m1;
private List<Foo> m2;
};
现在我要做的是将 Bar::m2 从一个 Activity 传递到另一个 Activity 。 Bar 中的数据在 ListView 中,选择行我需要传递适当的列表 m2 结构。
最好的方法是什么? 我试过的是这样的:
Intent intent = new Intent();
intent.putExtra( "test", new ArrayList<Foo> );
但是接收 Intent 抛出一个异常“Parcelable: Unable to marshall”
AFAICT ArrayList 应该是可序列化的,所以我不明白为什么会出现异常。
有人可以在这里安排一些灯光吗?
谢谢。
最佳答案
AFAICT ArrayList should be serializable
是的,但您没有 ArrayList
一无所有——你有一个 ArrayList
的 Foo
对象。
I don't understand why I'm getting an exception
因为 Foo
不是 Serializable
.
有效的答案是让您实现 Parcelable
支持Foo
, 然后使用 putParcelableArrayListExtra()
在你的 Intent
.
较少编程的答案是让你实现 Serializable
在 Foo
,在这种情况下,您当前的 putExra()
应该可以。
关于android - 如何在 Activity 之间传递对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17117540/