Monday, July 20, 2015
接口的向下转型到子类
今天,遇到一个问题,在Activty传递的时候我们 需要当前Acitvity 自定义View 中的数据传递过去。 但是在跳转的时候写的是 CustomDeatailEntity. 在自定义View中的数据的处理是 使用接口实现的,就是让CustomDeatailEntity implements interfaceDemo 中的方法,这种方案是十分方便的!
卧槽 我好喜欢啊!
实现方案:
1 可以将接口 向下转型成子类。
2 问题,一开始运行的时候报错了。我擦,竟然是CustomDeatailEntity的内部类没有实现Seriable 接口。这样的话,对象没有保存对象。
报的错误:
Caused by: java.io.NotSerializableException: com.eallcn.chowagent.entity.CustomerDetailEntity$Customer_info
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1342)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:957)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1382)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1649)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1459)
at android.os.Parcel.writeSerializable(Parcel.java:1311)
at android.os.Parcel.writeValue(Parcel.java:1264)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
at android.os.Bundle.writeToParcel(Bundle.java:1692)
at android.os.Parcel.writeBundle(Parcel.java:636)
at android.content.Intent.writeToParcel(Intent.java:7385)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2220)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1434)
at android.app.Activity.startActivityForResult(Activity.java:3534)
at android.app.Activity.startActivityForResult(Activity.java:3495)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
at com.eallcn.chowagent.ui.activity.BaseActivity.startActivityForResult(BaseActivity.java:140)
at android.app.Activity.startActivity(Activity.java:3737)
at android.app.Activity.startActivity(Activity.java:3705)
at com.eallcn.chowagent.ui.control.NavigateManager.goToCustomerRecommendAvailabilityActivity(NavigateManager.java:601)
Labels:
Android
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment