Пакет получен не полностью - PullRequest
0 голосов
/ 19 августа 2011

У меня проблема с отправкой данных через связку.

Intent toAudio = new Intent(TourDescription.this, Audio.class);
toAudio.putParcelableArrayListExtra("poi", arraypoi);
startActivity(toAudio);

здесь я отправляю arraypoi, который является ArrayList.Этот ArrayList содержит набор значений.

И в получающем классе у меня вот так:

listOfPOI = getIntent().getParcelableArrayListExtra("poi");
Collections.sort(listOfPOI);

, где listOfPOI также список массивов.

Проблема, с которой я столкнулся, заключается в том, что я не являюсьспособен принимать значения для 3 конкретных переменных в listOfPOI (поступая как null), остальные значения приходят правильно.

При отправке пакета я имею в виду в arraypoi, также я могу отправитьвсе значения правильно, но проблема заключается в получении его.

Примечание. Мой класс реализован только как parcelable.

Любой ответ на этот вопрос?

1 Ответ

0 голосов
/ 19 августа 2011

На мой взгляд, есть два обходных пути.

Первый:

Вам нужно сделать YourOwnArrayList в качестве подкласса ArrayList<YourObject> и implements Parcelable. Учебник здесь

Второе:

передать ваш объект, используя цикл for(). как это.

Intent toAudio = new Intent(TourDescription.this, Audio.class);
toAudio.putExtra("SIZE", arraypoi.size());
for(int i=0; i<arraypoi.size(); i++)
    toAudio.putExtra("POI"+i, arraypoi.get(i));
startActivity(toAudio);

и при поступлении в другой класс

Bundle data = getIntent().getExtras();
int size=data.getInt("SIZE");
for(int i=0; i<size; i++)
    listOfPOI.add((YOUR_OBJECT) data.getParcelable("POI"+i));

YOUR_OBJECT - это имя вашего Object.

...