2015-07-12 67 views
4

我在數組中有三個不同的類或活動。每個類代表一個謎題。我有一個函數在應用程序的開始處重新排列數組,以便用戶每次開始應用程序時都不會看到相同的難題。Android - 在活動之間傳遞一系列類

我想將這個類的數組從活動傳遞給活動。我可以將數組設置爲通過,但不知道如何在以下活動中檢索它。

這裏是設立在活動一

Class[] array = {PuzzleOne.class, PuzzleTwo.class, PuzzleThree.class}; 
Intent goToPuzzleOne = new Intent(MainActivity.this, array[0]); 
goToPuzzleOne.putExtra("classes",array); 

如何取回這個類活動二? 這裏是我到目前爲止

Bundle extras = getIntent().getExtras(); 
Class[] array = extras.NO IDEA HOW TO RETRIEVE IT HERE 

請讓我知道,如果有一個解決方案。謝謝。

Object[] array = (Object[]) extras.get("classes"); // you cannot cast to Class[] ! 

然後:

回答

2

因爲我們正在處理的一個地圖,你應該去

Class a = (Class) array[0]; // and etc. 
1

你可以看看什麼putExtra("classes", array)第二個參數的類型是,其中原來是Serializable

因此你可以得到它回來getSerializable()並投射到您的Array類:

Class[] array = (Class[]) extras.getSerializable("classes"); 
+0

謝謝你,偉大工程!過去我對序列化的處理並不多,儘管這很有效,但我不確定爲什麼?一個類被序列化意味着什麼?序列化主要用於類嗎?謝謝你,理解代碼對我非常有幫助。我很感激! –