2012-02-08 23 views
0

我有LocaitonArrayListlongArray而我試圖傳遞給新的活動,然後將它們寫入文件。傳遞ParcelableArrayList和LongArray到新的活動

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 

回答

1

你不能正確地傳遞信息。意圖中的擴展數據(「額外」)是捆綁包。你在做什麼,就是把你的捆綁包放在那個捆綁包內,在「捆綁」的關鍵之下。

如果你真的想就像你在你的第一個代碼段做到傳遞信息,則需要通過

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); 
+0

謝謝你完全解決了這個問題。 = d – 2012-02-08 22:10:50