Android 即使传递的对象不是null,getParcelable也返回null

Android 即使传递的对象不是null,getParcelable也返回null,android,android-intent,parcelable,Android,Android Intent,Parcelable,我想将一个可包裹的对象传递给另一个活动。 所以我实现了一个parcelable类来完成这个任务。 我编码: Intent intent = new Intent(mainactivity.this, SecondActivity.class); Object[] object = new Object(); intent.putExtra("Object ", object); startActivity(intent); 在第二个活动中,我编码: Object[] object = (Obj

我想将一个可包裹的对象传递给另一个活动。 所以我实现了一个parcelable类来完成这个任务。 我编码:

Intent intent = new Intent(mainactivity.this, SecondActivity.class);
Object[] object = new Object();
intent.putExtra("Object ", object);
startActivity(intent);
在第二个活动中,我编码:

Object[] object = (Object[]) getIntent().getExtras().getParcelable("object");
当我将对象传递给Intent时,它不是null。 然而,当我在第二个活动中得到它时,它是空的。 你有什么建议吗?提前谢谢

改变这一点:

Object object = (Object) getIntent().getExtras().getParcelable("object");
为此:

Object object = getIntent().getExtras().get("Object");
只有在使用
putParcelable
或在代码的发送部分使用
putExtra
插入
Parcelable
对象时,才应使用
getParcelable


另外,请注意键名ObjectObject

的区别,您只需在调用者中使用:

Intent i = new Intent(EditActivity.this, ViewActivity.class);
i.putExtra("myObj", p);
startActivity(i);
在接收器中:

Bundle b = i.getExtras();
Person p = (Person) b.getParcelable("myObject");

希望这对您有所帮助

您是否修复了键中的O差异?我注意到您使用数组更新了您的问题。不能简单地使用数组。尝试对对象实现parcelableArray,然后将parcelableArray放入Bundle中。我修复了它。我注意到问题在于铸造。我得到了一个可包裹的对象,但无法将其投射到数组对象中。我现在正在研究它。我刚刚解析了对象数组中的每个可包裹数组元素,所有元素都正常工作。我看到了类似于您的答案的地方-
I.putExtra(“返回数据”,p)和接收器中的
b.getParcelable(“数据”)
及其工作原理。如果两个键不相同,怎么可能呢?我想知道。