ClassCastException при отправке 2D-массива через намерение с использованием пакета

Я пытаюсь отправить 2D-массив через намерение с помощью Bundle.putSerializable, но при его получении получаю ошибку ClassCastException.

Код, который я использую, более или менее точно соответствует тому, о чем другие пользователи StackOverflow сообщили, что они работают на них, поэтому я не уверен, почему я получаю эту ошибку.

У меня есть 2D-массив, который я добавляю в свой Bundle и Intent следующим образом:

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[[][]

И я не уверен, почему, так как другие пользователи, по-видимому, сообщили об успехе в этом. Будет ли мне лучше обслуживаться с другим подходом?

Заранее спасибо.


person mikeappell    schedule 24.07.2014    source источник
comment
На каком уровне API обычно появляется ошибка?   -  person Josef E.    schedule 24.07.2014
comment
Он работает на рутированной версии 4.4, так что уровень 19, я думаю.   -  person mikeappell    schedule 24.07.2014


Ответы (1)


Надеюсь, это поможет...

Получить данные в следующем действии как

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];
    }
}
person Santhosh    schedule 24.07.2014
comment
Это было решение, которое я готовился реализовать; однако мне любопытно, почему приведение прямо к String[][] работало для некоторых людей, тогда как это явно не для меня. Есть идеи? - person mikeappell; 24.07.2014
comment
Это работает, и я отмечаю это как правильный ответ. Хотя все равно интересно, зачем это нужно. - person mikeappell; 25.07.2014