getParcelable()返回null对象

时间:2011-07-11 09:00:54

标签: android

我使用putExtra()将一些数据从一个活动传递到另一个活动。我想创建一个Parcelable实例,但我得到一个空对象。

以下是第一项活动的代码:

i = new Intent(Activity1.this, Activity2.class);
i.putExtra(com.login_app.Activity1.extra, "100");
startActivity(i);   

以下是第二项活动的代码:

Intent inew = getIntent();
Bundle icicle1 = inew.getExtras();
// this is just a debug code
System.out.println(
    icicle1.getSerializable(com.login_app.Activity1.extra).toString());
Parcelable p = inew.getParcelableExtra(com.login_app.Activity1.extra);

这里对象p是一个空对象。

如果我错了或者我需要添加其他内容,请告诉我。我希望将此Parcelable对象展平为Parcel对象。

1 个答案:

答案 0 :(得分:5)

那是因为你放了String,但试图获得Parcelable。您应该使用getStringExtra代替。

此外,来自Bundle的{​​{1}}文档(此函数用于实际从[getParcelable()][1]的包中获取额外内容):

  

返回与给定键关联的值,如果给定键不存在所需类型的映射,或者null值与键明确关联,则返回null。

所以你基本上得到Intent,因为你的类型不匹配。