java - 在Android Intent中传递任意对象

标签 java android android-intent

我希望通过 Android Intent 传递任意对象,我有以下代码:

在 Activity 中我希望发送 Intent :

Intent intent = new Intent(containerListActivity, com.uk.jacob.containerdroid.activities.ContainerDetailsActivity.class);
intent.putExtra("container", containers.get(i));
containerListActivity.startActivity(intent);

我希望收到意向的 Activity :

System.out.println(getIntent().getExtras("container"));

我似乎收到错误“无法解析 putExtra 方法。

containers 本质上是 Jackson JSON 映射的 POJO。

最佳答案

不幸的是,你不能在 Intent 中放置任意对象。它必须是可解析可序列化

http://developer.android.com/reference/android/content/Intent.html

您可以通过几种方式做到这一点:

  1. 让您的自定义类实现可序列化。编码速度很快,但性能可能不高。
  2. 让您的自定义类实现 Parcelable。这可能需要一些工作。
  3. 使用 Jackson 将您的容器转换为字符串,然后在使用getStringExtra后将其转换回来。

关于java - 在Android Intent中传递任意对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840582/

相关文章:

android - 无法在覆盖类中使用 putExtra 方法

java - NumberFormat/DecimalFormat 的线程安全动态模式

java - JEdi​​torPane 不想显示在 html 中完成的按钮(它显示在浏览器中)

java - 是否可以命名 AspectJ 声明的警告?

android - 将私钥嵌入到 Android 中的应用程序代码中

android - ContactManager 示例中抛出的 ActivityNotFoundException

java - 如何通过序列化在 Intent 之间传递自定义 ArrayAdapter 对象

java - Hibernate 在 SpringMVC 中的连接表上重复输入

java - 保存recyclerview列表的状态

android - 单击 NavigationDrawer 不打开 Bottom Sheet