问题场景描述: 从远程服务器获得一堆数据,组装为 groups childs cards三个对象,让后通过Intent传给UI去更新数据的显示。
三个对象的结构: groups{ 一些java基本类型, ... , childs[ ] mchild } childs{一些基本类型, .... , cards mcard } cards{一些基本类型}
三个对象都不算大,成员不超过20个。后2个实现了Serializable接口。
失败描述:用Intent.putExtra() 邦定groups对象数组 A
用mintent.getSerializableExtra()取得A并赋给groups对象数组B, 测试法现B为空。不能获得想要的对象数组.
跟踪代码,
Intent.java:
public Intent putExtra(String name, Parcelable[] value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putParcelableArray(name, value);
return this;
}
Bundle.java:
Map<String, Object> mMap = null;
public void putParcelableArray(String key, Parcelable[] value) {
unparcel();
mMap.put(key, value);
mFdsKnown = false;
}
用 if(value instanceof Object){
Log.d("******","Object[] equal Object");
} 去测试,log信息打印出来,
说明往map里面存的过程是OK的?
可是在Debug模式下 putExtra(String name, Parcelable[] value) 之后,查看intent的值,
确只有2个key--value:
key1------value1:4 存的应该是我的对象数组的大小
key2------value2:CustomerGroup[] 这里就点不开了,正常情况下应该是可以点开,里面存着成员,
说明数组到Object的转换出了问题,我认为应该转为Object[].
有兴趣的朋友一起讨论下!晚上回家有时间的话搞个测试看看。
补充下,传单个的groups对象是成功的.
分享到:
相关推荐
Intent传递对象、对象数组
Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat...
【Intent传递】对象、数组的DEMO,亲测,可运行,有详细注释
Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io....
Android 数据传递(Intent、Bundle、Serializable、Parcelable等),如项目包有问题请联系我谢谢
android activityIntent 传值 传对象
【Intent传递】对象、数组 DEMO,亲测,可运行,有详细注释。
android中Intent传递对象的两种方法(Serializable,Parcelable) 简单而又详细的demo,欢迎下载
android Intent传递对象数据 通过对象分别实现Serializable Parcelable接口的两种方法
欢迎下载实现Parcelable接口的方式借助Intent实现Android工程中Activity之间Java对象的传递.zip !
Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口。 Android中Intent传递对象的两种方法Serializable,Parcelable请点击...
Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable...
Xamarin.Android之Intent传递对象简单实例,实现的是IParcelable接口
主要为大家详细介绍了Android利用Intent启动和关闭Activity的相关操作,感兴趣的小伙伴们可以参考一下
通过一个实验,讲解Android的使用方法,总结详细
Android使用Intent实现Camera功能
主要介绍了Android编程使用Intent传递图片的方法,结合实例形式分析了Android基于Intent传输图片的原理与具体实现技巧,需要的朋友可以参考下
Android使用Intent实现Video功能
本文实例讲述了android中intent传递list或者对象的方法。分享给大家供大家参考。具体实现方法如下: 方法一: 如果单纯的传递List<String> 或者List的话 就可以直接使用 代码如下: 代码如下:intent....