Android 使用包通过intent发送2D数组时的ClassCastException
我试图使用Bundle.putSerializable通过Intent发送一个2D数组,但在检索它时遇到ClassCastException错误 我使用的代码或多或少都是其他StackOverflow用户报告的为他们工作的代码,因此我不确定为什么会出现此错误 我有一个2D数组,我将其添加到我的包中,目的如下:Android 使用包通过intent发送2D数组时的ClassCastException,android,arrays,classcastexception,Android,Arrays,Classcastexception,我试图使用Bundle.putSerializable通过Intent发送一个2D数组,但在检索它时遇到ClassCastException错误 我使用的代码或多或少都是其他StackOverflow用户报告的为他们工作的代码,因此我不确定为什么会出现此错误 我有一个2D数组,我将其添加到我的包中,目的如下: String[][] myString= new String[myGroup.length][myGroup[0].length]; //Data is added to String
String[][] myString= new String[myGroup.length][myGroup[0].length];
//Data is added to String here
Bundle myBundle = new Bundle();
myBundle.putSerializable("myString", myString);
intent.putExtras(myBundle);
Bundle myBundle = getIntent().getExtras();
String[][] myNewString= (String[][]) myBundle.getSerializable("myString");
并在下一个活动中检索,如下所示:
String[][] myString= new String[myGroup.length][myGroup[0].length];
//Data is added to String here
Bundle myBundle = new Bundle();
myBundle.putSerializable("myString", myString);
intent.putExtras(myBundle);
Bundle myBundle = getIntent().getExtras();
String[][] myNewString= (String[][]) myBundle.getSerializable("myString");
但是,在运行时,我会得到以下错误:
java.lang.ClassCastException:java.lang.Object[]不能强制转换为java.lang.String[[]]
我也不知道为什么,因为其他用户似乎都在报道这方面取得了成功。我会不会采取另一种方法更好
提前感谢。希望这有助于…… 在下一个活动中检索数据,如下所示
String[][] myNewString=null;
Object[] objectArray = (Object[]) getIntent().getExtras().getSerializable("myString");
if(objectArray!=null){
myNewString = new String[objectArray.length][];
for(int i=0;i<objectArray.length;i++){
myNewString[i]=(String[]) objectArray[i];
}
}
String[]myNewString=null;
对象[]对象数组=(对象[])getIntent().getExtras().getSerializable(“myString”);
if(objectArray!=null){
myNewString=新字符串[objectArray.length][];
对于(int i=0;i错误通常出现在哪个API级别?它是在根目录4.4上运行的,所以我相信是级别19。这是我准备实现的解决方案;但是,我很好奇为什么要直接转换为字符串[][]据报道,它为一些人工作,但显然不是为我。有什么想法吗?这是有效的,我把它标记为正确的答案。但仍然好奇为什么它是必要的。