2016-10-06 55 views
0

我有下面的代碼:在TrackerActivity穿越有意向雙陣列傳遞空

ArrayList<Double> latitudes; 
ArrayList<Double> longitudes; 
ArrayList<Double> altitudes; 

... 

Intent intent = new Intent(this, SummaryActivity.class); 
intent.putExtra(LATITUDES_EXTRA, latitudes.toArray()); 
intent.putExtra(LONGITUDES_EXTRA, longitudes.toArray()); 
intent.putExtra(ALTITUDES_EXTRA, altitudes.toArray()); 
startActivity(intent); 

和SummaryActivity:

latitudes = getIntent().getDoubleArrayExtra(TrackerActivity.LATITUDES_EXTRA); 
longitudes = getIntent().getDoubleArrayExtra(TrackerActivity.LONGITUDES_EXTRA); 
altitudes = getIntent().getDoubleArrayExtra(TrackerActivity.ALTITUDES_EXTRA); 

但是我得到空了所有的人。有什麼可能是錯的?

+2

請指定類型的每個變量 – Chisko

+2

特別的,我不知道的'指定者()'方法任何地方,會導致'雙[]',這是[什麼'getDoubleArrayExtra()'返回](https://developer.android.com/reference/android/content/Intent.html#getDoubleArrayExtra(java.lang.String中))。最有可能的是,你的演員是別的。 – CommonsWare

+0

以及如何通過兩個活動發送一個雙精度數組listList? – durisvk

回答

0

在Bundle類具有用於傳遞和檢索double數組方法:

- void putDoubleArray(String, double[]) 
- double [] getDoubleArray(String) 

可以是this ans will help you

+0

我其實是試圖使用序列化對象和它的作品...但我喜歡你的答案,所以我要把它標記爲答案。謝謝! – durisvk

+0

我們在這裏幫助的人民,所以沒必要感謝 – Hamza

+0

這個答案是四歲。我建議你保持最新狀態,這將有助於你將注意力集中在那裏的真實問題上。 – Chisko

-1

,需要在每個ArraryList<Double>轉換爲double[]。問題是ArraryList.toArray()改爲返回Double[]。您可以將您的列表聲明爲數組,以開頭或寫一點for循環來從列表複製到數組。

+0

我會盡量讓你知道 – durisvk

+0

他已經有一個ArrayList,什麼是你的理由嗎? – Chisko

+0

@Chisko這就是問題所在。他需要一個**數組**。 –

0

讓這個嘗試:

TrackerActivity

Intent intent = new Intent(this, SummaryActivity.class); 
intent.putExtra(LATITUDES_EXTRA, latitudes); 
intent.putExtra(LONGITUDES_EXTRA, longitudes); 
intent.putExtra(ALTITUDES_EXTRA, altitudes); 
startActivity(intent); 

SummaryActivity

latitudes = getIntent().getExtras().getParcelableArrayList(TrackerActivity.LATITUDES_EXTRA); 
longitudes = getIntent().getExtras().getParcelableArrayList(TrackerActivity.LONGITUDES_EXTRA); 
altitudes = getIntent().getExtras().getParcelableArrayList(TrackerActivity.ALTITUDES_EXTRA); 

爲什麼這項工作?從原語到對象 轉換是Java感謝瑣碎到稱爲自動裝箱功能,Oracle的當前文檔讀取:

自動裝箱是自動轉換,Java編譯器使得原語類型和它們的相應的對象之間包裝類。例如,將int轉換爲Integer,double轉換爲Double等等。如果轉換以另一種方式進行,則稱爲拆箱。