當我試圖將我的對象從一個Activity傳遞到另一個Activity時,存在問題。致命例外:主要在Android意圖
Intent intent = new Intent(this, CreateOrEditContactActivity.class);
intent.putExtra("contact", currentContact);
startActivity(intent);
下面是我的課聯繫的描述:
public class Contact implements Parcelable{
private int ID;
private String name;
private String surname;
private String dob;
private String sex;
private String address;
private Drawable photo;
//Other constructors and methods
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeArray(new Object[]{ID, name, surname, dob, sex, address, photo});
}
public static final Parcelable.Creator<Contact> CREATOR = new Parcelable.Creator<Contact>() {
@Override
public Contact createFromParcel(Parcel source) {
return new Contact(source);
}
@Override
public Contact[] newArray(int size) {
return new Contact[size];
}
};
private Contact(Parcel parcel) {
Object[] data = parcel.readArray(Contact.class.getClassLoader());
ID = (Integer) data[0];
name = (String) data[1];
surname = (String) data[2];
dob = (String) data[3];
sex = (String) data[4];
address = (String) data[5];
photo = (Drawable) data[6];
}
我也注意到,如果在currentContact照片== null,則一切正常,如果沒有,我得到一個致命異常:
02-06 09:28:26.691 21650-21650/com.mycontacts.app D/AndroidRuntime﹕ Shutting down VM
02-06 09:28:26.693 21650-21650/com.mycontacts.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.mycontacts.app, PID: 21650
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at android.support.v7.internal.view.SupportMenuInflater$InflatedOnMenuItemClickListener.onMenuItemClick(SupportMenuInflater.java:259)
at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)
at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:596)
at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:145)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
可能是什麼問題?如何正確傳達我的對象到另一個活動?
可以添加logcat的休息嗎? – Jens 2015-02-06 06:45:01
提供的類和堆棧跟蹤之間的關係是什麼? – 2015-02-06 07:13:51