现在网上关于省市区三联动的demo很多,包括之前的blog也写过。那为啥还要再写一次?原因是:
项目中这次是改版,也就是流程不动,只是改变显示方式。接手之前的demo已经使用spinner实现了省市区加载。
现在新需求是:
动态加载省市区,在新的一个新的页面,点击某一省(动态获取) 展开该省所有的市(动态获取),再点击某一市,加载该市所有的区(也是动态获取);
查看了很多资料,很多demo的数据源来源:
- 本地文件,在/assets目录也会提供存放资源文件
- 服务器返回省市区所有数据,包括省市区对应的关系,如id、pId、name
由于是改版,所以服务器数据源不会变,还是按照以前的返回方式:
1、无参请求,服务器返回所有的省,数据结构为:
* {
* "Results": [
* {
* "ShopProvinceName": "云南省"
* },
* {
* "ShopProvinceName": "上海市"
* }
* ],
* "Total": 0,
* "Code": 0,
* "ServiceTime": 1492496783
* }
2、点击某一省,返回该省下所有的市,返回数据结构为:
* {
* "Results": [
* {
* "ShopCityName": "上海市"
* }
* ],
* "Total": 0,
* "Code": 0,
* "ServiceTime": 1492496879
* }
3、点击某一市,返回该市下所有的区,数据结构为
* {
* "Results": [
* {
* "ShopDistrictName": "宝山区"
* },
* {
* "ShopDistrictName": "长宁区"
* },
* {
* "ShopDistrictName": "奉贤区"
* },
* {
* "ShopDistrictName": "虹口区"
* },
* {
* "ShopDistrictName": "黄浦区"
* },
* {
* "ShopDistrictName": "嘉定区"
* },
* {
* "ShopDistrictName": "金山区"
* },
* {
* "ShopDistrictName": "闵行区"
* },
* {
* "ShopDistrictName": "浦东新区"
* },
* {
* "ShopDistrictName": "普陀区"
* },
* {
* "ShopDistrictName": "青浦区"
* },
* {
* "ShopDistrictName": "松江区"
* },
* {
* "ShopDistrictName": "徐汇区"
* },
* {
* "ShopDistrictName": "杨浦区"
* },
* {
* "ShopDistrictName": "闸北区"
* }
* ],
* "Total": 0,
* "Code": 0,
* "ServiceTime": 1492496905
* }
所以,不光要展示树形结构,还要动态获取数据
如果