我使用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对象。
答案 0 :(得分:5)
那是因为你放了String
,但试图获得Parcelable
。您应该使用getStringExtra
代替。
此外,来自Bundle
的{{1}}文档(此函数用于实际从[getParcelable()][1]
的包中获取额外内容):
返回与给定键关联的值,如果给定键不存在所需类型的映射,或者null值与键明确关联,则返回null。
所以你基本上得到Intent
,因为你的类型不匹配。