我有ArrayList
Locaiton
和Array
long
我试图传递给新活动,然后将其写入文件。
Bundle b = new Bundle();
Intent i = new Intent(Begin_Run.this, GPSTrackDetails.class);
Times = convertLong(times);
b.putParcelableArrayList("Locations", locations);
b.putLongArray("Times", Times);
i.putExtra("bundle", b);
startActivity(i);
这是我使用捆绑包将它们添加到Intent
的方式。但是当我尝试在新活动中打印出来时,我得到一个空指针异常。
这就是我在新活动中将其从Bundle
中删除的方式。
Bundle bundle = getIntent().getExtras();
locations = bundle.getParcelableArrayList("Locations");
times = bundle.getLongArray("Times");
LogCat输出
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fyp.run_race/com.fyp.run_race.GPSTrackDetails}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.fyp.run_race.GPSTrackDetails.onCreate(GPSTrackDetails.java:37)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
... 11 more
答案 0 :(得分:1)
您没有正确传递信息。 Intent 中的扩展数据(“额外”)是一个包。你正在做的是将你的捆绑放在密码“捆绑”下的内。
如果你真的想传递像你在第一个代码片段中那样的信息,你需要通过
来解决它。Bundle bundle = getIntent().getExtras().getParcelable( "bundle" );
但是,您可能只想将其直接放入额外内容中,使用类似
的内容Intent i = new Intent(Begin_Run.this, GPSTrackDetails.class);
Times = convertLong(times);
i.putParcelableArrayListExtra("Locations", locations);
i.putExtra("Times", Times);
startActivity(i);