2015-07-12 25 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

谢谢你,伟大工程!过去我对序列化的处理并不多,尽管这很有效,但我不确定为什么?一个类被序列化意味着什么?序列化主要用于类吗?谢谢你,理解代码对我非常有帮助。我很感激! –