我在通过捆绑包发送数据时遇到了问题。
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
也是一个数组列表。
我面临的问题是,我无法接收listOfPOI
中的3个特定变量的值(来自null
),其余所有值都正常。
发送捆绑包时,我的意思是arraypoi
我也能正确发送所有值,但问题是在接收时。
注意:我的课程仅实现为parcelable
。
对此有何答案?
答案 0 :(得分:0)
我的观点有两种解决方法。
<强>首先强>
您需要将YourOwnArrayList
作为ArrayList<YourObject>
和implements
Parcelable
的子类。
Tutorial Here
<强>第二强>
使用for()
循环传递您的Object。像这样。
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
的类名。