如何将 Address 对象数组传递给另一个 Activity

2024-04-08

我正在尝试传递一系列Address http://developer.android.com/reference/android/location/Address.html通过 Intent 对象传递给另一个 Activity 的对象。

由于 Address 类实现了可分包 http://developer.android.com/reference/android/os/Parcelable.html界面我尝试执行以下操作。我从地理编码器对象中获取了一个列表地址对象,并将其转换为地址对象数组。然后我将这个数组放入 Intent 中并调用该活动。

final Address[] addresses = addresseList.toArray(new Address[addresseList.size()]);

final Intent intent = new Intent(this, SelectAddress.class);
intent.putExtra(SelectAddress.INTENT_EXTRA_ADDRESSES, startAddresses);

startActivityForResult(intent, REQUEST_CODE_ACTIVITY_SELECT_ADDRESSES);

在另一个活动中,我尝试使用以下代码从 Intent 中检索 Address[]。但最后一行的调用以 ClassCastException 结束Landroid.os.Parcelable.

Bundle bundle = getIntent().getExtras();            
Address[] addresses = (Address[]) bundle.getParcelableArray(INTENT_EXTRA_ADDRESSES);

我究竟做错了什么?我如何检索地址[]。


问题在于铸造。尝试:

Bundle bundle = getIntent().getExtras();
Parcelable[] parcels = bundle.getParcelableArray(INTENT_EXTRA_ADDRESSES);

Address[] addresses = new Address[parcels.length];
for (Parcelable par : parcels){
     addresses.add((Address) par);              
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Address 对象数组传递给另一个 Activity 的相关文章

随机推荐