2011-08-19 28 views
0

我在通过捆绑包发送数据时遇到问题。捆绑未完全收到

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(即将来到null)中的3个特定变量的值,其余所有值都正确。

尽管发送束,我的意思是在arraypoi也是我能够正确地发送所有的值,但问题是,同时接受它。

注:我班仅是作为parcelable

任何答案吗?

+0

必须看到parcelable类的代码。编辑你的答案。 – Ronnie

回答

0

有我的观点两种解决方法。

第一:

你需要让YourOwnArrayListArrayList<YourObject>implementsParcelable子类。 Tutorial Here

二:

通过使用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的类名。