作者amhuang (阿铭)
看板AndroidDev
标题[问题]在onSaveInstanceState(), Bundle HashMap
时间Wed Feb 19 12:56:22 2014
想请问Bundle HashMap 发生了错误, Logcat 的讯息是
android.os.BadParcelableException:
ClassNotFoundException when unmarshalling: com.myapp.model.StationHashMap
unmarshalling 时找不到Class = ="
在 com.myapp.model.StationHashMap 有implements Parcelable
而HashMap value 的类别是自订的类别为Station
程式码:
MapFragment.java:
https://gist.github.com/ymhuang0808/9086234
片段程式, 是onSaveInstanceState() 的部分, 主要是将mStationMap set到
stationHashMap 中再put 到bundle
以下都是资料储存的model 类别都有实做Parcelable
StationHashMap.java :
https://gist.github.com/ymhuang0808/9086124
Station.java :
https://gist.github.com/ymhuang0808/9086148
会写成StationHashMap 是参考StackOverflow 的这篇
http://goo.gl/ZSBlrL
他说Parcelable 比Serializable 快, 也看到有人测试的文章
http://goo.gl/Is0eg8
尝试过的有加入bundle.setClassLoader(getClass().getClassLoader())
指定ClassLoader
还是没work...
如果有经验的大大可以提供一下解决方式,或者提醒能解决的方向
感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.168.239.157
※ 编辑: amhuang 来自: 1.168.239.157 (02/19 12:57)
※ 编辑: amhuang 来自: 1.168.239.157 (02/19 12:57)
1F:→ laiair:会不会是class没有在manifest注册啊 02/19 19:54
2F:→ amhuang:我从Service bundle 过来就可以... 在SupportMapFragment 02/19 21:30
3F:→ amhuang:就会不行... 02/19 21:30
4F:→ amhuang:是Service bundle 到Activity 02/19 21:32
5F:→ amhuang:只好利用Activity 存了... 然後有restore再call fragment 02/19 22:15