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");

 

 

這樣可以理解瞭吧。

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *