我希望通过 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
您可以通过几种方式做到这一点:
- 让您的自定义类实现
可序列化
。编码速度很快,但性能可能不高。 - 让您的自定义类实现
Parcelable
。这可能需要一些工作。 - 使用 Jackson 将您的
容器
转换为字符串,然后在使用getStringExtra
后将其转换回来。
关于java - 在Android Intent中传递任意对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840582/