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

时间:2012-08-31 08:18:39

标签: android android-intent parcelable

我想将一个parcelable对象传递给另一个活动。 所以我实现了一个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。 而当我在第二个Activity中得到它时为null。 你有什么建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:7)

改变这个:

Object object = (Object) getIntent().getExtras().getParcelable("object");

对此:

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

putExtra

P.S。还要注意键名对象对象

的区别

答案 1 :(得分:2)

您只需在来电者中使用:

Intent i = new Intent(EditActivity.this, ViewActivity.class);
i.putExtra("myObj", p);
startActivity(i);

在收件人中:

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

希望这能帮到你