getParcelable()返回null对象

Sum*_*mit 2 android

我曾经putExtra()把一些数据从一个活动传递给另一个活动.我想创建一个Parcelable实例,但我得到一个null对象.

这是第一个活动的代码:

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

这是第二个活动的代码:

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);
Run Code Online (Sandbox Code Playgroud)

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

请告诉我,如果我错了或者我需要添加别的东西.我希望将此Parcelable对象展平为Parcel对象.

ina*_*ruk 5

那是因为你已经投入String,但试图获得Parcelable.你应该使用getStringExtra.

另外,从Bundle文档中[getParcelable()][1]可以看出(这个函数实际上是从Intent包中获得额外的):

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

所以你基本上得到null因为你有类型不匹配.

  • 这是一个单独的问题.如果您的问题没有答案,请使用[so]上的搜索功能并发布新问题. (2认同)