我在一个数组中有三个不同的类或活动。每个类代表一个谜题。我有一个在应用程序开始时重新排列数组的函数,这样用户每次启动应用程序时都不会看到相同的谜题。
我想将此类数组从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
如果有解决方案,请告诉我。谢谢。
答案 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");