我对Android开发很陌生。实现Parcelable对象时出错
我不明白,为什么下面的代码,一旦给了我的StackOverflowError
Intent intent = new Intent(view.getContext(), MakeCall.class);
SipParcelable sipp = new SipParcelable(_sip);
intent.putExtra("sip", (Parcelable) sipp);
startActivity(intent);
基本上为startActivity(意向)火灾,我得到以下错误:
我可以通过使用putExtra()
函数注释掉第三行来摆脱错误。
我想将我的_sip对象传递给另一个即将加载的屏幕上的MakeCall.class活动。我试图按照关于如何实现Parcelable类/对象的教程。以下是我的SipParcelable代码的样子:
import com.myproject.library.SipService;
import android.os.Parcel;
import android.os.Parcelable;
public class SipParcelable implements Parcelable{
public SipService mData;
/* everything below here is for implementing Parcelable */
// 99.9% of the time you can just ignore this
public int describeContents() {
return 0;
}
// write your object's data to the passed-in Parcel
public void writeToParcel(Parcel out, int flags) {
out.writeValue(mData);
}
public SipParcelable(SipService sip)
{
mData = sip;
}
// Parcelling part
public SipParcelable(Parcel in){
mData = (SipService) in.readValue(SipService.class.getClassLoader());
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public SipParcelable createFromParcel(Parcel in) {
return new SipParcelable(in);
}
public SipParcelable[] newArray(int size) {
return new SipParcelable[size];
}
};
}
我在做什么错?
为什么不先把可分类放入一个包中?你也在你的SipParcelable类中缺少CREATOR字段 –
SipService'是否可以分类?也就是说它自己实现了Parcelable吗? –
SipService不实现Parcelable。我希望把它作为一个属性放到一个SipParcelable类中。这是做到这一点的正确方法吗?因为我不允许修改课程SipService – John