android intent传递list

以前用到的没整理,现在整理下,方便用:


一般接口返回一个list我们不能直接传递,定义为static类型吧,占用内存又太大,所以我们想办法定义为普通变量,通过itent传递,这个时候我们就必须把自定义的model实现序列化,继承Parcelable接口。直接贴代码:


public class CityListInfo implements Parcelable;


 List<CityListInfo> cityListInfos = new ArrayList<CityListInfo>();

 List<Map<String, JSONDataHolder>> hotCityList = jsonParcel
                    .get("data").getJsonObjectMap().get("hotCityList")
                    .getList();


  if (null != hotCityList && hotCityList.size() > 0)
            {
                for (int i = 0; i < hotCityList.size(); i++)
                {
                    CityListInfo ci = new CityListInfo();
                    ci.cityId = hotCityList.get(i).get("cityId").getString();
                    ci.cityPinyin = hotCityList.get(i).get("pinyin")
                            .getString();
                    ci.cityName = hotCityList.get(i).get("cityName")
                            .getString();


                    cityListInfos.add(ci);
                }
            }

 mCityListInfo = (List<CityListInfo>) msg.obj;


 intent.putParcelableArrayListExtra("cityName",
                            (ArrayList<CityListInfo>) mCityListInfo);


 ArrayList<CityListInfo> cityInfos = this.getIntent()
                    .getParcelableArrayListExtra("cityName");


这样可以理解了吧。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值