Android - 在活动之间传递一组类

时间:2015-07-12 20:57:29

标签: java android arrays

我在一个数组中有三个不同的类或活动。每个类代表一个谜题。我有一个在应用程序开始时重新排列数组的函数,这样用户每次启动应用程序时都不会看到相同的谜题。

我想将此类数组从activity传递给activity。我能够将数组设置为传递,但不知道如何在以下活动中检索它。

以下是Activity One中的设置

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

如何在Activity 2中检索此类? 这是我到目前为止所拥有的

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

如果有解决方案,请告诉我。谢谢。

2 个答案:

答案 0 :(得分:2)

由于我们正在处理地图,您应该使用:

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

然后:

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

答案 1 :(得分:1)

您可以查看putExtra("classes", array)的第二个参数的类型,结果是Serializable

因此,您可以使用getSerializable()将其恢复并将其转换为您的类数组:

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