<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init(event)"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import com.adobe.serialization.json.JSON; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.ResultEvent; import spark.events.IndexChangeEvent; private var proColl:ArrayCollection; private var cityColl:ArrayCollection; protected function init(event:FlexEvent):void { flexutil.getProvince(); } protected function flexutil_resultHandler(event:ResultEvent):void { var jsonPro:String = event.result as String; var proArr:Array = (JSON.decode(jsonPro) as Array); proColl = new ArrayCollection(proArr); province.dataProvider = proColl; //province.selectedIndex = 0; } protected function province_changeHandler(event:IndexChangeEvent):void { var code : int = province.selectedItem.code as int; cityUtil.getCity(code); } protected function cityUtil_resultHandler(event:ResultEvent):void { var jsonCity : String = event.result as String; var cityArr:Array = (JSON.decode(jsonCity) as Array); cityColl = new ArrayCollection(cityArr); city.dataProvider = cityColl; //city.selectedIndex = 0; } ]]> </fx:Script> <fx:Declarations> <mx:RemoteObject id = "flexutil" destination="FlexUtil" endpoint="/MyFlexApp/messagebroker/amf" result="flexutil_resultHandler(event)"> </mx:RemoteObject> <mx:RemoteObject id = "cityUtil" destination="FlexUtil" endpoint="/MyFlexApp/messagebroker/amf" result="cityUtil_resultHandler(event)"> </mx:RemoteObject> </fx:Declarations> <s:DropDownList x="169" y="78" width="175" id="province" labelField="name" changing="province_changeHandler(event)"></s:DropDownList> <s:DropDownList x="507" y="78" width="175" id="city" labelField="name"></s:DropDownList> <s:Label x="65" y="78" text="一级城市" width="83" height="21" fontSize="18"/> <s:Label x="403" y="78" text="二级城市" width="83" height="21" fontSize="18"/> </s:Application>
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.jite.entity.OrgData; public class FlexUtil { private Gson gson = new Gson(); public String getProvince() { String jsonString = gson.toJson(proList); return jsonString; } public String getCity(Integer code) { List cityList = (List) proMap.get(code); String jsonString = gson.toJson(cityList); return jsonString; } private Map proMap = new HashMap(); private List proList = new ArrayList(); public FlexUtil() { OrgData pro1 = new OrgData(1, "湖南"); OrgData pro2 = new OrgData(2, "湖北"); OrgData pro3 = new OrgData(3, "江苏"); proList.add(pro1); proList.add(pro2); proList.add(pro3); OrgData city1 = new OrgData(1, "长沙"); OrgData city2 = new OrgData(2, "邵阳"); OrgData city3 = new OrgData(3, "常德"); OrgData city4 = new OrgData(4, "武汉"); OrgData city5 = new OrgData(5, "华容"); OrgData city6 = new OrgData(6, "南京"); OrgData city7 = new OrgData(7, "无锡"); List list1 = new ArrayList(); list1.add(city1); list1.add(city2); list1.add(city3); List list2 = new ArrayList(); list2.add(city4); list2.add(city5); List list3 = new ArrayList(); list3.add(city6); list3.add(city7); proMap.put(pro1.getCode(), list1); proMap.put(pro2.getCode(), list2); proMap.put(pro3.getCode(), list3); } }