3

我正在尝试在两个应用程序之间共享数据..首先我想将文件保存到 SD 卡然后读取它..但是这个解决方案不起作用..所以如果有办法发送ArrayList一个Object实现Parcelable..

还有什么其他方法可以实现这一目标?

注意:
活动不在同一个应用程序中。

4

4 回答 4

8

ArrayList是一个Serializable类,Intent因此只要您的自定义对象也是Serializable. 它看起来像:

Intent intent = new Intent(YourActivity.this, YourReceiverActivity.class);
intent.putExtra("YourArrayList", new ArrayList<YourSerializableObject>());
startActivity(intent);

然后检索它:

Intent intent = getIntent();
ArrayList<YourSerializableObject> list = 
    (ArrayList<YourSerializableObject>)intent.getSerializableExtra("YourArrayList");

对于要成为的对象Serializable,所有包含的成员也必须是Serializable

于 2012-09-19T13:05:50.367 回答
1

您可以使用带有静态成员类型 ArrayList<CustomObject> 的静态类(例如称为 DataChannel),然后使用静态 get/set 在活动之间传递对象。

于 2012-09-19T13:42:51.383 回答
1

我不确定为什么没有人提到这一点,但你最好的选择是 BY FAR SQLite。它比任何传递的对象都高效得多,因为相比之下它不会占用任何内存。

于 2015-03-17T22:42:33.857 回答
0

您可以使用以下方法将对象数组作为额外内容存储在 Intent 中:

public Intent putExtra (String name, Parcelable[] value)

您必须配置您的其他应用程序以接收您的自定义 URI 的 Intent。

于 2012-09-19T11:40:17.560 回答