省市區(qū)選擇框

1.簡介

在項目里遇到了地區(qū)選擇,并非在一個選擇框中選擇,產(chǎn)品要求顯示三個選擇框分別選擇,現(xiàn)記錄下實現(xiàn)過程,以備后用。

2.效果圖
area_select.png

選擇省


province_select.png

選擇市

city_select.png

選擇區(qū)縣

county_select.png
3.實現(xiàn)

根據(jù)數(shù)據(jù)結(jié)構(gòu),構(gòu)建實體類

/**
     * area_id_parent : 0
     * id : 4
     * name : 河北省
     * second : [{"area_id_parent":"4","id":"73","name":"石家莊市","three":[{"area_id_parent":"73","id":"74","name":"長安區(qū)"},{"area_id_parent":"73","id":"75","name":"橋東區(qū)"},{"area_id_parent":"73","id":"76","name":"橋西區(qū)"},{"area_id_parent":"73","id":"77","name":"新華區(qū)"},{"area_id_parent":"73","id":"78","name":"井陘礦區(qū)"},{"area_id_parent":"73","id":"79","name":"裕華區(qū)"},{"area_id_parent":"73","id":"80","name":"井陘縣"},{"area_id_parent":"73","id":"81","name":"正定縣"},{"area_id_parent":"73","id":"82","name":"欒城縣"},{"area_id_parent":"73","id":"83","name":"行唐縣"},{"area_id_parent":"73","id":"84","name":"靈壽縣"},{"area_id_parent":"73","id":"85","name":"高邑縣"},{"area_id_parent":"73","id":"86","name":"深澤縣"},{"area_id_parent":"73","id":"87","name":"贊皇縣"},{"area_id_parent":"73","id":"88","name":"無極縣"},{"area_id_parent":"73","id":"89","name":"平山縣"},{"area_id_parent":"73","id":"90","name":"元氏縣"},{"area_id_parent":"73","id":"91","name":"趙縣"},{"area_id_parent":"73","id":"92","name":"辛集市"},{"area_id_parent":"73","id":"93","name":"藁城市"},{"area_id_parent":"73","id":"94","name":"晉州市"},{"area_id_parent":"73","id":"95","name":"新樂市"},{"area_id_parent":"73","id":"96","name":"鹿泉市"}]},{"area_id_parent":"4","id":"97","name":"唐山市","three":[{"area_id_parent":"97","id":"98","name":"路南區(qū)"},{"area_id_parent":"97","id":"99","name":"路北區(qū)"},{"area_id_parent":"97","id":"100","name":"古冶區(qū)"},{"area_id_parent":"97","id":"101","name":"開平區(qū)"},{"area_id_parent":"97","id":"102","name":"豐南區(qū)"},{"area_id_parent":"97","id":"103","name":"豐潤區(qū)"},{"area_id_parent":"97","id":"104","name":"灤縣"},{"area_id_parent":"97","id":"105","name":"灤南縣"},{"area_id_parent":"97","id":"106","name":"樂亭縣"},{"area_id_parent":"97","id":"107","name":"遷西縣"},{"area_id_parent":"97","id":"108","name":"玉田縣"},{"area_id_parent":"97","id":"109","name":"唐海縣"},{"area_id_parent":"97","id":"110","name":"遵化市"},{"area_id_parent":"97","id":"111","name":"遷安市"}]},{"area_id_parent":"4","id":"112","name":"秦皇島市","three":[{"area_id_parent":"112","id":"113","name":"海港區(qū)"},{"area_id_parent":"112","id":"114","name":"山海關(guān)區(qū)"},{"area_id_parent":"112","id":"115","name":"北戴河區(qū)"},{"area_id_parent":"112","id":"116","name":"青龍滿族自治縣"},{"area_id_parent":"112","id":"117","name":"昌黎縣"},{"area_id_parent":"112","id":"118","name":"撫寧縣"},{"area_id_parent":"112","id":"119","name":"盧龍縣"}]},{"area_id_parent":"4","id":"120","name":"邯鄲市","three":[{"area_id_parent":"120","id":"121","name":"邯山區(qū)"},{"area_id_parent":"120","id":"122","name":"叢臺區(qū)"},{"area_id_parent":"120","id":"123","name":"復(fù)興區(qū)"},{"area_id_parent":"120","id":"124","name":"峰峰礦區(qū)"},{"area_id_parent":"120","id":"125","name":"邯鄲縣"},{"area_id_parent":"120","id":"126","name":"臨漳縣"},{"area_id_parent":"120","id":"127","name":"成安縣"},{"area_id_parent":"120","id":"128","name":"大名縣"},{"area_id_parent":"120","id":"129","name":"涉縣"},{"area_id_parent":"120","id":"130","name":"磁縣"},{"area_id_parent":"120","id":"131","name":"肥鄉(xiāng)縣"},{"area_id_parent":"120","id":"132","name":"永年縣"},{"area_id_parent":"120","id":"133","name":"邱縣"},{"area_id_parent":"120","id":"134","name":"雞澤縣"},{"area_id_parent":"120","id":"135","name":"廣平縣"},{"area_id_parent":"120","id":"136","name":"館陶縣"},{"area_id_parent":"120","id":"137","name":"魏縣"},{"area_id_parent":"120","id":"138","name":"曲周縣"},{"area_id_parent":"120","id":"139","name":"武安市"}]},{"area_id_parent":"4","id":"140","name":"邢臺市","three":[{"area_id_parent":"140","id":"141","name":"橋東區(qū)"},{"area_id_parent":"140","id":"142","name":"橋西區(qū)"},{"area_id_parent":"140","id":"143","name":"邢臺縣"},{"area_id_parent":"140","id":"144","name":"臨城縣"},{"area_id_parent":"140","id":"145","name":"內(nèi)丘縣"},{"area_id_parent":"140","id":"146","name":"柏鄉(xiāng)縣"},{"area_id_parent":"140","id":"147","name":"隆堯縣"},{"area_id_parent":"140","id":"148","name":"任縣"},{"area_id_parent":"140","id":"149","name":"南和縣"},{"area_id_parent":"140","id":"150","name":"寧晉縣"},{"area_id_parent":"140","id":"151","name":"巨鹿縣"},{"area_id_parent":"140","id":"152","name":"新河縣"},{"area_id_parent":"140","id":"153","name":"廣宗縣"},{"area_id_parent":"140","id":"154","name":"平鄉(xiāng)縣"},{"area_id_parent":"140","id":"155","name":"威縣"},{"area_id_parent":"140","id":"156","name":"清河縣"},{"area_id_parent":"140","id":"157","name":"臨西縣"},{"area_id_parent":"140","id":"158","name":"南宮市"},{"area_id_parent":"140","id":"159","name":"沙河市"}]},{"area_id_parent":"4","id":"160","name":"保定市","three":[{"area_id_parent":"160","id":"161","name":"新市區(qū)"},{"area_id_parent":"160","id":"162","name":"北市區(qū)"},{"area_id_parent":"160","id":"163","name":"南市區(qū)"},{"area_id_parent":"160","id":"164","name":"滿城縣"},{"area_id_parent":"160","id":"165","name":"清苑縣"},{"area_id_parent":"160","id":"166","name":"淶水縣"},{"area_id_parent":"160","id":"167","name":"阜平縣"},{"area_id_parent":"160","id":"168","name":"徐水縣"},{"area_id_parent":"160","id":"169","name":"定興縣"},{"area_id_parent":"160","id":"170","name":"唐縣"},{"area_id_parent":"160","id":"171","name":"高陽縣"},{"area_id_parent":"160","id":"172","name":"容城縣"},{"area_id_parent":"160","id":"173","name":"淶源縣"},{"area_id_parent":"160","id":"174","name":"望都縣"},{"area_id_parent":"160","id":"175","name":"安新縣"},{"area_id_parent":"160","id":"176","name":"易縣"},{"area_id_parent":"160","id":"177","name":"曲陽縣"},{"area_id_parent":"160","id":"178","name":"蠡縣"},{"area_id_parent":"160","id":"179","name":"順平縣"},{"area_id_parent":"160","id":"180","name":"博野縣"},{"area_id_parent":"160","id":"181","name":"雄縣"},{"area_id_parent":"160","id":"182","name":"涿州市"},{"area_id_parent":"160","id":"183","name":"定州市"},{"area_id_parent":"160","id":"184","name":"安國市"},{"area_id_parent":"160","id":"185","name":"高碑店市"}]},{"area_id_parent":"4","id":"186","name":"張家口市","three":[{"area_id_parent":"186","id":"187","name":"橋東區(qū)"},{"area_id_parent":"186","id":"188","name":"橋西區(qū)"},{"area_id_parent":"186","id":"189","name":"宣化區(qū)"},{"area_id_parent":"186","id":"190","name":"下花園區(qū)"},{"area_id_parent":"186","id":"191","name":"宣化縣"},{"area_id_parent":"186","id":"192","name":"張北縣"},{"area_id_parent":"186","id":"193","name":"康保縣"},{"area_id_parent":"186","id":"194","name":"沽源縣"},{"area_id_parent":"186","id":"195","name":"尚義縣"},{"area_id_parent":"186","id":"196","name":"蔚縣"},{"area_id_parent":"186","id":"197","name":"陽原縣"},{"area_id_parent":"186","id":"198","name":"懷安縣"},{"area_id_parent":"186","id":"199","name":"萬全縣"},{"area_id_parent":"186","id":"200","name":"懷來縣"},{"area_id_parent":"186","id":"201","name":"涿鹿縣"},{"area_id_parent":"186","id":"202","name":"赤城縣"},{"area_id_parent":"186","id":"203","name":"崇禮縣"}]},{"area_id_parent":"4","id":"204","name":"承德市","three":[{"area_id_parent":"204","id":"205","name":"雙橋區(qū)"},{"area_id_parent":"204","id":"206","name":"雙灤區(qū)"},{"area_id_parent":"204","id":"207","name":"鷹手營子礦區(qū)"},{"area_id_parent":"204","id":"208","name":"承德縣"},{"area_id_parent":"204","id":"209","name":"興隆縣"},{"area_id_parent":"204","id":"210","name":"平泉縣"},{"area_id_parent":"204","id":"211","name":"灤平縣"},{"area_id_parent":"204","id":"212","name":"隆化縣"},{"area_id_parent":"204","id":"213","name":"豐寧滿族自治縣"},{"area_id_parent":"204","id":"214","name":"寬城滿族自治縣"},{"area_id_parent":"204","id":"215","name":"圍場滿族蒙古族自治縣"}]},{"area_id_parent":"4","id":"216","name":"滄州市","three":[{"area_id_parent":"216","id":"217","name":"新華區(qū)"},{"area_id_parent":"216","id":"218","name":"運(yùn)河區(qū)"},{"area_id_parent":"216","id":"219","name":"滄縣"},{"area_id_parent":"216","id":"220","name":"青縣"},{"area_id_parent":"216","id":"221","name":"東光縣"},{"area_id_parent":"216","id":"222","name":"海興縣"},{"area_id_parent":"216","id":"223","name":"鹽山縣"},{"area_id_parent":"216","id":"224","name":"肅寧縣"},{"area_id_parent":"216","id":"225","name":"南皮縣"},{"area_id_parent":"216","id":"226","name":"吳橋縣"},{"area_id_parent":"216","id":"227","name":"獻(xiàn)縣"},{"area_id_parent":"216","id":"228","name":"孟村回族自治縣"},{"area_id_parent":"216","id":"229","name":"泊頭市"},{"area_id_parent":"216","id":"230","name":"任丘市"},{"area_id_parent":"216","id":"231","name":"黃驊市"},{"area_id_parent":"216","id":"232","name":"河間市"}]},{"area_id_parent":"4","id":"233","name":"廊坊市","three":[{"area_id_parent":"233","id":"234","name":"安次區(qū)"},{"area_id_parent":"233","id":"235","name":"廣陽區(qū)"},{"area_id_parent":"233","id":"236","name":"固安縣"},{"area_id_parent":"233","id":"237","name":"永清縣"},{"area_id_parent":"233","id":"238","name":"香河縣"},{"area_id_parent":"233","id":"239","name":"大城縣"},{"area_id_parent":"233","id":"240","name":"文安縣"},{"area_id_parent":"233","id":"241","name":"大廠回族自治縣"},{"area_id_parent":"233","id":"242","name":"霸州市"},{"area_id_parent":"233","id":"243","name":"三河市"}]},{"area_id_parent":"4","id":"244","name":"衡水市","three":[{"area_id_parent":"244","id":"245","name":"桃城區(qū)"},{"area_id_parent":"244","id":"246","name":"棗強(qiáng)縣"},{"area_id_parent":"244","id":"247","name":"武邑縣"},{"area_id_parent":"244","id":"248","name":"武強(qiáng)縣"},{"area_id_parent":"244","id":"249","name":"饒陽縣"},{"area_id_parent":"244","id":"250","name":"安平縣"},{"area_id_parent":"244","id":"251","name":"故城縣"},{"area_id_parent":"244","id":"252","name":"景縣"},{"area_id_parent":"244","id":"253","name":"阜城縣"},{"area_id_parent":"244","id":"254","name":"冀州市"},{"area_id_parent":"244","id":"255","name":"深州市"}]}]
     */
 private String area_id_parent;
    private String id;
    private String name;
    private ArrayList<SecondEntity> second;
    public String getArea_id_parent() {
        return area_id_parent;
    }
    public void setArea_id_parent(String area_id_parent) {
        this.area_id_parent = area_id_parent;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public ArrayList<SecondEntity> getSecond() {
        return second;
    }
    public void setSecond(ArrayList<SecondEntity> second) {
        this.second = second;
    }
    @Override
    public String toString() {
        return name;
    }
    public static class SecondEntity implements Serializable {
        private String area_id_parent;
        private String id;
        private String name;
        @Override
        public String toString() {
            return name;
        }
        private ArrayList<ThreeEntity> three;
        public String getArea_id_parent() {
            return area_id_parent;
        }
        public void setArea_id_parent(String area_id_parent) {
            this.area_id_parent = area_id_parent;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public ArrayList<ThreeEntity> getThree() {
            return three;
        }
        public void setThree(ArrayList<ThreeEntity> three) {
            this.three = three;
        }
        public static class ThreeEntity implements Serializable {
            private String area_id_parent;
            private String id;
            private String name;
            public String getArea_id_parent() {
                return area_id_parent;
            }
            public void setArea_id_parent(String area_id_parent) {
                this.area_id_parent = area_id_parent;
            }
            @Override
            public String toString() {
                return name;
            }
            public String getId() {
                return id;
            }
            public void setId(String id) {
                this.id = id;
            }
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }
        }
    }

在布局文件中使用TextView構(gòu)建顯示

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/tv_province"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@drawable/btn_boder_white_3dp"
            android:drawablePadding="6dp"
            android:drawableRight="@mipmap/arrow_down"
            android:gravity="center"
            android:paddingLeft="12dp"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:text="請選擇省份"
            android:textColor="#333333"
            android:textSize="14dp" />

        <TextView
            android:id="@+id/tv_city"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="9dp"
            android:layout_weight="1"
            android:background="@drawable/btn_boder_white_3dp"
            android:drawablePadding="6dp"
            android:drawableRight="@mipmap/arrow_down"
            android:gravity="center"
            android:paddingLeft="12dp"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:text="請選擇城市"
            android:textColor="#333333"
            android:textSize="14dp" />
        <TextView
            android:id="@+id/tv_county"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="9dp"
            android:layout_weight="1"
            android:background="@drawable/btn_boder_white_3dp"
            android:drawablePadding="6dp"
            android:drawableRight="@mipmap/arrow_down"
            android:gravity="center"
            android:paddingLeft="12dp"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:text="請選擇縣區(qū)"
            android:textColor="#333333"
            android:textSize="14dp" />
    </LinearLayout>

定義變量

  public final static String HONG_KONG = "香港特別行政區(qū)";
    public final static String MA_KAO = "澳門特別行政區(qū)";
    private static final int HONG_KONG_OR_AO_MEN = -1;
//用于標(biāo)識請求地區(qū)信息的類型,
    // 0表示進(jìn)界面時的請求,
    // 1表示點擊選擇省之后的請求
    // 2表示點擊選擇市之后的請求
    // 3表示點擊選擇區(qū)之后的請求
    private int flag = 0;

點擊選擇省

tvProvince.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                flag = 1;
                if (proviceEntityList == null) {
                    requestArea();//如果省級數(shù)據(jù)為null就請求數(shù)據(jù)
                } else {//有數(shù)據(jù)就直接顯示
                    mHandler.sendEmptyMessage(SHOW_PROVINCE);
                }
            }
        });

這里數(shù)據(jù)使用模擬數(shù)據(jù)

private void requestArea(){
        String areaJson = "[{\"area_id_parent\":\"0\",\"id\":\"2\",\"name\":\"北京市\(zhòng)",\"second\":[{\"area_id_parent\":\"0\",\"id\":\"2\",\"name\":\"北京市\(zhòng)",\"three\":[{\"area_id_parent\":\"2\",\"id\":\"37\",\"name\":\"東城區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"38\",\"name\":\"西城區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"39\",\"name\":\"崇文區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"40\",\"name\":\"宣武區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"41\",\"name\":\"朝陽區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"42\",\"name\":\"豐臺區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"43\",\"name\":\"石景山區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"44\",\"name\":\"海淀區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"45\",\"name\":\"門頭溝區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"46\",\"name\":\"房山區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"47\",\"name\":\"通州區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"48\",\"name\":\"順義區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"49\",\"name\":\"昌平區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"50\",\"name\":\"大興區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"51\",\"name\":\"懷柔區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"52\",\"name\":\"平谷區(qū)\"},{\"area_id_parent\":\"2\",\"id\":\"53\",\"name\":\"密云縣\"},{\"area_id_parent\":\"2\",\"id\":\"54\",\"name\":\"延慶縣\"}]}]},\n" +
                "{\"area_id_parent\":\"0\",\"id\":\"3\",\"name\":\"天津市\(zhòng)",\"second\":[{\"area_id_parent\":\"0\",\"id\":\"3\",\"name\":\"天津市\(zhòng)",\"three\":[{\"area_id_parent\":\"3\",\"id\":\"55\",\"name\":\"和平區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"56\",\"name\":\"河?xùn)|區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"57\",\"name\":\"河西區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"58\",\"name\":\"南開區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"59\",\"name\":\"河北區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"60\",\"name\":\"紅橋區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"61\",\"name\":\"塘沽區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"62\",\"name\":\"漢沽區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"63\",\"name\":\"大港區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"64\",\"name\":\"東麗區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"65\",\"name\":\"西青區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"66\",\"name\":\"津南區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"67\",\"name\":\"北辰區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"68\",\"name\":\"武清區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"69\",\"name\":\"寶坻區(qū)\"},{\"area_id_parent\":\"3\",\"id\":\"70\",\"name\":\"寧河縣\"},{\"area_id_parent\":\"3\",\"id\":\"71\",\"name\":\"靜海縣\"},{\"area_id_parent\":\"3\",\"id\":\"72\",\"name\":\"薊縣\"},{\"area_id_parent\":\"3\",\"id\":\"3190\",\"name\":\"濱海新區(qū)\"}]}]},\n" +
                "{\"area_id_parent\":\"0\",\"id\":\"4\",\"name\":\"河北省\",\"second\":[{\"area_id_parent\":\"4\",\"id\":\"73\",\"name\":\"石家莊市\(zhòng)",\"three\":[{\"area_id_parent\":\"73\",\"id\":\"74\",\"name\":\"長安區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"75\",\"name\":\"橋東區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"76\",\"name\":\"橋西區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"77\",\"name\":\"新華區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"78\",\"name\":\"井陘礦區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"79\",\"name\":\"裕華區(qū)\"},{\"area_id_parent\":\"73\",\"id\":\"80\",\"name\":\"井陘縣\"},{\"area_id_parent\":\"73\",\"id\":\"81\",\"name\":\"正定縣\"},{\"area_id_parent\":\"73\",\"id\":\"82\",\"name\":\"欒城縣\"},{\"area_id_parent\":\"73\",\"id\":\"83\",\"name\":\"行唐縣\"},{\"area_id_parent\":\"73\",\"id\":\"84\",\"name\":\"靈壽縣\"},{\"area_id_parent\":\"73\",\"id\":\"85\",\"name\":\"高邑縣\"},{\"area_id_parent\":\"73\",\"id\":\"86\",\"name\":\"深澤縣\"},{\"area_id_parent\":\"73\",\"id\":\"87\",\"name\":\"贊皇縣\"},{\"area_id_parent\":\"73\",\"id\":\"88\",\"name\":\"無極縣\"},{\"area_id_parent\":\"73\",\"id\":\"89\",\"name\":\"平山縣\"},{\"area_id_parent\":\"73\",\"id\":\"90\",\"name\":\"元氏縣\"},{\"area_id_parent\":\"73\",\"id\":\"91\",\"name\":\"趙縣\"},{\"area_id_parent\":\"73\",\"id\":\"92\",\"name\":\"辛集市\(zhòng)"},{\"area_id_parent\":\"73\",\"id\":\"93\",\"name\":\"藁城市\(zhòng)"},{\"area_id_parent\":\"73\",\"id\":\"94\",\"name\":\"晉州市\(zhòng)"},{\"area_id_parent\":\"73\",\"id\":\"95\",\"name\":\"新樂市\(zhòng)"},{\"area_id_parent\":\"73\",\"id\":\"96\",\"name\":\"鹿泉市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"97\",\"name\":\"唐山市\(zhòng)",\"three\":[{\"area_id_parent\":\"97\",\"id\":\"98\",\"name\":\"路南區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"99\",\"name\":\"路北區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"100\",\"name\":\"古冶區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"101\",\"name\":\"開平區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"102\",\"name\":\"豐南區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"103\",\"name\":\"豐潤區(qū)\"},{\"area_id_parent\":\"97\",\"id\":\"104\",\"name\":\"灤縣\"},{\"area_id_parent\":\"97\",\"id\":\"105\",\"name\":\"灤南縣\"},{\"area_id_parent\":\"97\",\"id\":\"106\",\"name\":\"樂亭縣\"},{\"area_id_parent\":\"97\",\"id\":\"107\",\"name\":\"遷西縣\"},{\"area_id_parent\":\"97\",\"id\":\"108\",\"name\":\"玉田縣\"},{\"area_id_parent\":\"97\",\"id\":\"109\",\"name\":\"唐海縣\"},{\"area_id_parent\":\"97\",\"id\":\"110\",\"name\":\"遵化市\(zhòng)"},{\"area_id_parent\":\"97\",\"id\":\"111\",\"name\":\"遷安市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"112\",\"name\":\"秦皇島市\(zhòng)",\"three\":[{\"area_id_parent\":\"112\",\"id\":\"113\",\"name\":\"海港區(qū)\"},{\"area_id_parent\":\"112\",\"id\":\"114\",\"name\":\"山海關(guān)區(qū)\"},{\"area_id_parent\":\"112\",\"id\":\"115\",\"name\":\"北戴河區(qū)\"},{\"area_id_parent\":\"112\",\"id\":\"116\",\"name\":\"青龍滿族自治縣\"},{\"area_id_parent\":\"112\",\"id\":\"117\",\"name\":\"昌黎縣\"},{\"area_id_parent\":\"112\",\"id\":\"118\",\"name\":\"撫寧縣\"},{\"area_id_parent\":\"112\",\"id\":\"119\",\"name\":\"盧龍縣\"}]},{\"area_id_parent\":\"4\",\"id\":\"120\",\"name\":\"邯鄲市\(zhòng)",\"three\":[{\"area_id_parent\":\"120\",\"id\":\"121\",\"name\":\"邯山區(qū)\"},{\"area_id_parent\":\"120\",\"id\":\"122\",\"name\":\"叢臺區(qū)\"},{\"area_id_parent\":\"120\",\"id\":\"123\",\"name\":\"復(fù)興區(qū)\"},{\"area_id_parent\":\"120\",\"id\":\"124\",\"name\":\"峰峰礦區(qū)\"},{\"area_id_parent\":\"120\",\"id\":\"125\",\"name\":\"邯鄲縣\"},{\"area_id_parent\":\"120\",\"id\":\"126\",\"name\":\"臨漳縣\"},{\"area_id_parent\":\"120\",\"id\":\"127\",\"name\":\"成安縣\"},{\"area_id_parent\":\"120\",\"id\":\"128\",\"name\":\"大名縣\"},{\"area_id_parent\":\"120\",\"id\":\"129\",\"name\":\"涉縣\"},{\"area_id_parent\":\"120\",\"id\":\"130\",\"name\":\"磁縣\"},{\"area_id_parent\":\"120\",\"id\":\"131\",\"name\":\"肥鄉(xiāng)縣\"},{\"area_id_parent\":\"120\",\"id\":\"132\",\"name\":\"永年縣\"},{\"area_id_parent\":\"120\",\"id\":\"133\",\"name\":\"邱縣\"},{\"area_id_parent\":\"120\",\"id\":\"134\",\"name\":\"雞澤縣\"},{\"area_id_parent\":\"120\",\"id\":\"135\",\"name\":\"廣平縣\"},{\"area_id_parent\":\"120\",\"id\":\"136\",\"name\":\"館陶縣\"},{\"area_id_parent\":\"120\",\"id\":\"137\",\"name\":\"魏縣\"},{\"area_id_parent\":\"120\",\"id\":\"138\",\"name\":\"曲周縣\"},{\"area_id_parent\":\"120\",\"id\":\"139\",\"name\":\"武安市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"140\",\"name\":\"邢臺市\(zhòng)",\"three\":[{\"area_id_parent\":\"140\",\"id\":\"141\",\"name\":\"橋東區(qū)\"},{\"area_id_parent\":\"140\",\"id\":\"142\",\"name\":\"橋西區(qū)\"},{\"area_id_parent\":\"140\",\"id\":\"143\",\"name\":\"邢臺縣\"},{\"area_id_parent\":\"140\",\"id\":\"144\",\"name\":\"臨城縣\"},{\"area_id_parent\":\"140\",\"id\":\"145\",\"name\":\"內(nèi)丘縣\"},{\"area_id_parent\":\"140\",\"id\":\"146\",\"name\":\"柏鄉(xiāng)縣\"},{\"area_id_parent\":\"140\",\"id\":\"147\",\"name\":\"隆堯縣\"},{\"area_id_parent\":\"140\",\"id\":\"148\",\"name\":\"任縣\"},{\"area_id_parent\":\"140\",\"id\":\"149\",\"name\":\"南和縣\"},{\"area_id_parent\":\"140\",\"id\":\"150\",\"name\":\"寧晉縣\"},{\"area_id_parent\":\"140\",\"id\":\"151\",\"name\":\"巨鹿縣\"},{\"area_id_parent\":\"140\",\"id\":\"152\",\"name\":\"新河縣\"},{\"area_id_parent\":\"140\",\"id\":\"153\",\"name\":\"廣宗縣\"},{\"area_id_parent\":\"140\",\"id\":\"154\",\"name\":\"平鄉(xiāng)縣\"},{\"area_id_parent\":\"140\",\"id\":\"155\",\"name\":\"威縣\"},{\"area_id_parent\":\"140\",\"id\":\"156\",\"name\":\"清河縣\"},{\"area_id_parent\":\"140\",\"id\":\"157\",\"name\":\"臨西縣\"},{\"area_id_parent\":\"140\",\"id\":\"158\",\"name\":\"南宮市\(zhòng)"},{\"area_id_parent\":\"140\",\"id\":\"159\",\"name\":\"沙河市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"160\",\"name\":\"保定市\(zhòng)",\"three\":[{\"area_id_parent\":\"160\",\"id\":\"161\",\"name\":\"新市區(qū)\"},{\"area_id_parent\":\"160\",\"id\":\"162\",\"name\":\"北市區(qū)\"},{\"area_id_parent\":\"160\",\"id\":\"163\",\"name\":\"南市區(qū)\"},{\"area_id_parent\":\"160\",\"id\":\"164\",\"name\":\"滿城縣\"},{\"area_id_parent\":\"160\",\"id\":\"165\",\"name\":\"清苑縣\"},{\"area_id_parent\":\"160\",\"id\":\"166\",\"name\":\"淶水縣\"},{\"area_id_parent\":\"160\",\"id\":\"167\",\"name\":\"阜平縣\"},{\"area_id_parent\":\"160\",\"id\":\"168\",\"name\":\"徐水縣\"},{\"area_id_parent\":\"160\",\"id\":\"169\",\"name\":\"定興縣\"},{\"area_id_parent\":\"160\",\"id\":\"170\",\"name\":\"唐縣\"},{\"area_id_parent\":\"160\",\"id\":\"171\",\"name\":\"高陽縣\"},{\"area_id_parent\":\"160\",\"id\":\"172\",\"name\":\"容城縣\"},{\"area_id_parent\":\"160\",\"id\":\"173\",\"name\":\"淶源縣\"},{\"area_id_parent\":\"160\",\"id\":\"174\",\"name\":\"望都縣\"},{\"area_id_parent\":\"160\",\"id\":\"175\",\"name\":\"安新縣\"},{\"area_id_parent\":\"160\",\"id\":\"176\",\"name\":\"易縣\"},{\"area_id_parent\":\"160\",\"id\":\"177\",\"name\":\"曲陽縣\"},{\"area_id_parent\":\"160\",\"id\":\"178\",\"name\":\"蠡縣\"},{\"area_id_parent\":\"160\",\"id\":\"179\",\"name\":\"順平縣\"},{\"area_id_parent\":\"160\",\"id\":\"180\",\"name\":\"博野縣\"},{\"area_id_parent\":\"160\",\"id\":\"181\",\"name\":\"雄縣\"},{\"area_id_parent\":\"160\",\"id\":\"182\",\"name\":\"涿州市\(zhòng)"},{\"area_id_parent\":\"160\",\"id\":\"183\",\"name\":\"定州市\(zhòng)"},{\"area_id_parent\":\"160\",\"id\":\"184\",\"name\":\"安國市\(zhòng)"},{\"area_id_parent\":\"160\",\"id\":\"185\",\"name\":\"高碑店市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"186\",\"name\":\"張家口市\(zhòng)",\"three\":[{\"area_id_parent\":\"186\",\"id\":\"187\",\"name\":\"橋東區(qū)\"},{\"area_id_parent\":\"186\",\"id\":\"188\",\"name\":\"橋西區(qū)\"},{\"area_id_parent\":\"186\",\"id\":\"189\",\"name\":\"宣化區(qū)\"},{\"area_id_parent\":\"186\",\"id\":\"190\",\"name\":\"下花園區(qū)\"},{\"area_id_parent\":\"186\",\"id\":\"191\",\"name\":\"宣化縣\"},{\"area_id_parent\":\"186\",\"id\":\"192\",\"name\":\"張北縣\"},{\"area_id_parent\":\"186\",\"id\":\"193\",\"name\":\"康保縣\"},{\"area_id_parent\":\"186\",\"id\":\"194\",\"name\":\"沽源縣\"},{\"area_id_parent\":\"186\",\"id\":\"195\",\"name\":\"尚義縣\"},{\"area_id_parent\":\"186\",\"id\":\"196\",\"name\":\"蔚縣\"},{\"area_id_parent\":\"186\",\"id\":\"197\",\"name\":\"陽原縣\"},{\"area_id_parent\":\"186\",\"id\":\"198\",\"name\":\"懷安縣\"},{\"area_id_parent\":\"186\",\"id\":\"199\",\"name\":\"萬全縣\"},{\"area_id_parent\":\"186\",\"id\":\"200\",\"name\":\"懷來縣\"},{\"area_id_parent\":\"186\",\"id\":\"201\",\"name\":\"涿鹿縣\"},{\"area_id_parent\":\"186\",\"id\":\"202\",\"name\":\"赤城縣\"},{\"area_id_parent\":\"186\",\"id\":\"203\",\"name\":\"崇禮縣\"}]},{\"area_id_parent\":\"4\",\"id\":\"204\",\"name\":\"承德市\(zhòng)",\"three\":[{\"area_id_parent\":\"204\",\"id\":\"205\",\"name\":\"雙橋區(qū)\"},{\"area_id_parent\":\"204\",\"id\":\"206\",\"name\":\"雙灤區(qū)\"},{\"area_id_parent\":\"204\",\"id\":\"207\",\"name\":\"鷹手營子礦區(qū)\"},{\"area_id_parent\":\"204\",\"id\":\"208\",\"name\":\"承德縣\"},{\"area_id_parent\":\"204\",\"id\":\"209\",\"name\":\"興隆縣\"},{\"area_id_parent\":\"204\",\"id\":\"210\",\"name\":\"平泉縣\"},{\"area_id_parent\":\"204\",\"id\":\"211\",\"name\":\"灤平縣\"},{\"area_id_parent\":\"204\",\"id\":\"212\",\"name\":\"隆化縣\"},{\"area_id_parent\":\"204\",\"id\":\"213\",\"name\":\"豐寧滿族自治縣\"},{\"area_id_parent\":\"204\",\"id\":\"214\",\"name\":\"寬城滿族自治縣\"},{\"area_id_parent\":\"204\",\"id\":\"215\",\"name\":\"圍場滿族蒙古族自治縣\"}]},{\"area_id_parent\":\"4\",\"id\":\"216\",\"name\":\"滄州市\(zhòng)",\"three\":[{\"area_id_parent\":\"216\",\"id\":\"217\",\"name\":\"新華區(qū)\"},{\"area_id_parent\":\"216\",\"id\":\"218\",\"name\":\"運(yùn)河區(qū)\"},{\"area_id_parent\":\"216\",\"id\":\"219\",\"name\":\"滄縣\"},{\"area_id_parent\":\"216\",\"id\":\"220\",\"name\":\"青縣\"},{\"area_id_parent\":\"216\",\"id\":\"221\",\"name\":\"東光縣\"},{\"area_id_parent\":\"216\",\"id\":\"222\",\"name\":\"海興縣\"},{\"area_id_parent\":\"216\",\"id\":\"223\",\"name\":\"鹽山縣\"},{\"area_id_parent\":\"216\",\"id\":\"224\",\"name\":\"肅寧縣\"},{\"area_id_parent\":\"216\",\"id\":\"225\",\"name\":\"南皮縣\"},{\"area_id_parent\":\"216\",\"id\":\"226\",\"name\":\"吳橋縣\"},{\"area_id_parent\":\"216\",\"id\":\"227\",\"name\":\"獻(xiàn)縣\"},{\"area_id_parent\":\"216\",\"id\":\"228\",\"name\":\"孟村回族自治縣\"},{\"area_id_parent\":\"216\",\"id\":\"229\",\"name\":\"泊頭市\(zhòng)"},{\"area_id_parent\":\"216\",\"id\":\"230\",\"name\":\"任丘市\(zhòng)"},{\"area_id_parent\":\"216\",\"id\":\"231\",\"name\":\"黃驊市\(zhòng)"},{\"area_id_parent\":\"216\",\"id\":\"232\",\"name\":\"河間市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"233\",\"name\":\"廊坊市\(zhòng)",\"three\":[{\"area_id_parent\":\"233\",\"id\":\"234\",\"name\":\"安次區(qū)\"},{\"area_id_parent\":\"233\",\"id\":\"235\",\"name\":\"廣陽區(qū)\"},{\"area_id_parent\":\"233\",\"id\":\"236\",\"name\":\"固安縣\"},{\"area_id_parent\":\"233\",\"id\":\"237\",\"name\":\"永清縣\"},{\"area_id_parent\":\"233\",\"id\":\"238\",\"name\":\"香河縣\"},{\"area_id_parent\":\"233\",\"id\":\"239\",\"name\":\"大城縣\"},{\"area_id_parent\":\"233\",\"id\":\"240\",\"name\":\"文安縣\"},{\"area_id_parent\":\"233\",\"id\":\"241\",\"name\":\"大廠回族自治縣\"},{\"area_id_parent\":\"233\",\"id\":\"242\",\"name\":\"霸州市\(zhòng)"},{\"area_id_parent\":\"233\",\"id\":\"243\",\"name\":\"三河市\(zhòng)"}]},{\"area_id_parent\":\"4\",\"id\":\"244\",\"name\":\"衡水市\(zhòng)",\"three\":[{\"area_id_parent\":\"244\",\"id\":\"245\",\"name\":\"桃城區(qū)\"},{\"area_id_parent\":\"244\",\"id\":\"246\",\"name\":\"棗強(qiáng)縣\"},{\"area_id_parent\":\"244\",\"id\":\"247\",\"name\":\"武邑縣\"},{\"area_id_parent\":\"244\",\"id\":\"248\",\"name\":\"武強(qiáng)縣\"},{\"area_id_parent\":\"244\",\"id\":\"249\",\"name\":\"饒陽縣\"},{\"area_id_parent\":\"244\",\"id\":\"250\",\"name\":\"安平縣\"},{\"area_id_parent\":\"244\",\"id\":\"251\",\"name\":\"故城縣\"},{\"area_id_parent\":\"244\",\"id\":\"252\",\"name\":\"景縣\"},{\"area_id_parent\":\"244\",\"id\":\"253\",\"name\":\"阜城縣\"},{\"area_id_parent\":\"244\",\"id\":\"254\",\"name\":\"冀州市\(zhòng)"},{\"area_id_parent\":\"244\",\"id\":\"255\",\"name\":\"深州市\(zhòng)"}]}]},\n" +
                "{\"area_id_parent\":\"0\",\"id\":\"33\",\"name\":\"新疆維吾爾自治區(qū)\",\"second\":[{\"area_id_parent\":\"33\",\"id\":\"3080\",\"name\":\"烏魯木齊市\(zhòng)",\"three\":[{\"area_id_parent\":\"3080\",\"id\":\"3081\",\"name\":\"天山區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3082\",\"name\":\"沙依巴克區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3083\",\"name\":\"新市區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3084\",\"name\":\"水磨溝區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3085\",\"name\":\"頭屯河區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3086\",\"name\":\"達(dá)坂城區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3087\",\"name\":\"米東區(qū)\"},{\"area_id_parent\":\"3080\",\"id\":\"3088\",\"name\":\"烏魯木齊縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3089\",\"name\":\"克拉瑪依市\(zhòng)",\"three\":[{\"area_id_parent\":\"3089\",\"id\":\"3090\",\"name\":\"獨山子區(qū)\"},{\"area_id_parent\":\"3089\",\"id\":\"3091\",\"name\":\"克拉瑪依區(qū)\"},{\"area_id_parent\":\"3089\",\"id\":\"3092\",\"name\":\"白堿灘區(qū)\"},{\"area_id_parent\":\"3089\",\"id\":\"3093\",\"name\":\"烏爾禾區(qū)\"}]},{\"area_id_parent\":\"33\",\"id\":\"3094\",\"name\":\"吐魯番地區(qū)\",\"three\":[{\"area_id_parent\":\"3094\",\"id\":\"3095\",\"name\":\"吐魯番市\(zhòng)"},{\"area_id_parent\":\"3094\",\"id\":\"3096\",\"name\":\"鄯善縣\"},{\"area_id_parent\":\"3094\",\"id\":\"3097\",\"name\":\"托克遜縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3098\",\"name\":\"哈密地區(qū)\",\"three\":[{\"area_id_parent\":\"3098\",\"id\":\"3099\",\"name\":\"哈密市\(zhòng)"},{\"area_id_parent\":\"3098\",\"id\":\"3100\",\"name\":\"巴里坤哈薩克自治縣\"},{\"area_id_parent\":\"3098\",\"id\":\"3101\",\"name\":\"伊吾縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3102\",\"name\":\"昌吉回族自治州\",\"three\":[{\"area_id_parent\":\"3102\",\"id\":\"3103\",\"name\":\"昌吉市\(zhòng)"},{\"area_id_parent\":\"3102\",\"id\":\"3104\",\"name\":\"阜康市\(zhòng)"},{\"area_id_parent\":\"3102\",\"id\":\"3105\",\"name\":\"呼圖壁縣\"},{\"area_id_parent\":\"3102\",\"id\":\"3106\",\"name\":\"瑪納斯縣\"},{\"area_id_parent\":\"3102\",\"id\":\"3107\",\"name\":\"奇臺縣\"},{\"area_id_parent\":\"3102\",\"id\":\"3108\",\"name\":\"吉木薩爾縣\"},{\"area_id_parent\":\"3102\",\"id\":\"3109\",\"name\":\"木壘哈薩克自治縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3110\",\"name\":\"博爾塔拉蒙古自治州\",\"three\":[{\"area_id_parent\":\"3110\",\"id\":\"3111\",\"name\":\"博樂市\(zhòng)"},{\"area_id_parent\":\"3110\",\"id\":\"3112\",\"name\":\"精河縣\"},{\"area_id_parent\":\"3110\",\"id\":\"3113\",\"name\":\"溫泉縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3114\",\"name\":\"巴音郭楞蒙古自治州\",\"three\":[{\"area_id_parent\":\"3114\",\"id\":\"3115\",\"name\":\"庫爾勒市\(zhòng)"},{\"area_id_parent\":\"3114\",\"id\":\"3116\",\"name\":\"輪臺縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3117\",\"name\":\"尉犁縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3118\",\"name\":\"若羌縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3119\",\"name\":\"且末縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3120\",\"name\":\"焉耆回族自治縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3121\",\"name\":\"和靜縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3122\",\"name\":\"和碩縣\"},{\"area_id_parent\":\"3114\",\"id\":\"3123\",\"name\":\"博湖縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3124\",\"name\":\"阿克蘇地區(qū)\",\"three\":[{\"area_id_parent\":\"3124\",\"id\":\"3125\",\"name\":\"阿克蘇市\(zhòng)"},{\"area_id_parent\":\"3124\",\"id\":\"3126\",\"name\":\"溫宿縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3127\",\"name\":\"庫車縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3128\",\"name\":\"沙雅縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3129\",\"name\":\"新和縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3130\",\"name\":\"拜城縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3131\",\"name\":\"烏什縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3132\",\"name\":\"阿瓦提縣\"},{\"area_id_parent\":\"3124\",\"id\":\"3133\",\"name\":\"柯坪縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3134\",\"name\":\"克孜勒蘇柯爾克孜自治州\",\"three\":[{\"area_id_parent\":\"3134\",\"id\":\"3135\",\"name\":\"阿圖什市\(zhòng)"},{\"area_id_parent\":\"3134\",\"id\":\"3136\",\"name\":\"阿克陶縣\"},{\"area_id_parent\":\"3134\",\"id\":\"3137\",\"name\":\"阿合奇縣\"},{\"area_id_parent\":\"3134\",\"id\":\"3138\",\"name\":\"烏恰縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3139\",\"name\":\"喀什地區(qū)\",\"three\":[{\"area_id_parent\":\"3139\",\"id\":\"3140\",\"name\":\"喀什市\(zhòng)"},{\"area_id_parent\":\"3139\",\"id\":\"3141\",\"name\":\"疏附縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3142\",\"name\":\"疏勒縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3143\",\"name\":\"英吉沙縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3144\",\"name\":\"澤普縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3145\",\"name\":\"莎車縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3146\",\"name\":\"葉城縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3147\",\"name\":\"麥蓋提縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3148\",\"name\":\"岳普湖縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3149\",\"name\":\"伽師縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3150\",\"name\":\"巴楚縣\"},{\"area_id_parent\":\"3139\",\"id\":\"3151\",\"name\":\"塔什庫爾干塔吉克自治縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3152\",\"name\":\"和田地區(qū)\",\"three\":[{\"area_id_parent\":\"3152\",\"id\":\"3153\",\"name\":\"和田市\(zhòng)"},{\"area_id_parent\":\"3152\",\"id\":\"3154\",\"name\":\"和田縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3155\",\"name\":\"墨玉縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3156\",\"name\":\"皮山縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3157\",\"name\":\"洛浦縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3158\",\"name\":\"策勒縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3159\",\"name\":\"于田縣\"},{\"area_id_parent\":\"3152\",\"id\":\"3160\",\"name\":\"民豐縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3161\",\"name\":\"伊犁哈薩克自治州\",\"three\":[{\"area_id_parent\":\"3161\",\"id\":\"3162\",\"name\":\"伊寧市\(zhòng)"},{\"area_id_parent\":\"3161\",\"id\":\"3163\",\"name\":\"奎屯市\(zhòng)"},{\"area_id_parent\":\"3161\",\"id\":\"3164\",\"name\":\"伊寧縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3165\",\"name\":\"察布查爾錫伯自治縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3166\",\"name\":\"霍城縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3167\",\"name\":\"鞏留縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3168\",\"name\":\"新源縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3169\",\"name\":\"昭蘇縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3170\",\"name\":\"特克斯縣\"},{\"area_id_parent\":\"3161\",\"id\":\"3171\",\"name\":\"尼勒克縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3172\",\"name\":\"塔城地區(qū)\",\"three\":[{\"area_id_parent\":\"3172\",\"id\":\"3173\",\"name\":\"塔城市\(zhòng)"},{\"area_id_parent\":\"3172\",\"id\":\"3174\",\"name\":\"烏蘇市\(zhòng)"},{\"area_id_parent\":\"3172\",\"id\":\"3175\",\"name\":\"額敏縣\"},{\"area_id_parent\":\"3172\",\"id\":\"3176\",\"name\":\"沙灣縣\"},{\"area_id_parent\":\"3172\",\"id\":\"3177\",\"name\":\"托里縣\"},{\"area_id_parent\":\"3172\",\"id\":\"3178\",\"name\":\"裕民縣\"},{\"area_id_parent\":\"3172\",\"id\":\"3179\",\"name\":\"和布克賽爾蒙古自治縣\"}]},{\"area_id_parent\":\"33\",\"id\":\"3180\",\"name\":\"阿勒泰地區(qū)\",\"three\":[{\"area_id_parent\":\"3180\",\"id\":\"3181\",\"name\":\"阿勒泰市\(zhòng)"},{\"area_id_parent\":\"3180\",\"id\":\"3182\",\"name\":\"布爾津縣\"},{\"area_id_parent\":\"3180\",\"id\":\"3183\",\"name\":\"富蘊(yùn)縣\"},{\"area_id_parent\":\"3180\",\"id\":\"3184\",\"name\":\"福海縣\"},{\"area_id_parent\":\"3180\",\"id\":\"3185\",\"name\":\"哈巴河縣\"},{\"area_id_parent\":\"3180\",\"id\":\"3186\",\"name\":\"青河縣\"},{\"area_id_parent\":\"3180\",\"id\":\"3187\",\"name\":\"吉木乃縣\"}]}]},{\"area_id_parent\":\"0\",\"id\":\"34\",\"name\":\"臺灣省\"},{\"area_id_parent\":\"0\",\"id\":\"35\",\"name\":\"香港特別行政區(qū)\"},{\"area_id_parent\":\"0\",\"id\":\"36\",\"name\":\"澳門特別行政區(qū)\"}]";
        Type type = new TypeToken<ArrayList<AreaEntity>>(){}.getType();
        proviceEntityList = new Gson().fromJson(areaJson,type);

        if (flag == 1) {
            mHandler.sendEmptyMessage(SHOW_PROVINCE);
        } else if (flag == 2) {
            mHandler.sendEmptyMessage(SHOW_CITY);
        } else if (flag == 3) {
            mHandler.sendEmptyMessage(SHOW_STREET);
        }
    }

點擊選擇市

tvCity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag == HONG_KONG_OR_AO_MEN) {//香港或者澳門是沒有市和區(qū)縣
                    return;
                }
                flag = 2;
                if (proviceEntityList == null) {
                    requestArea();
                } else {
                    mHandler.sendEmptyMessage(SHOW_CITY);
                }
            }
        });

點擊選擇區(qū)縣

tvCounty.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag == HONG_KONG_OR_AO_MEN) {
                    return;
                }

                flag = 3;
                if (proviceEntityList == null) {
                    requestArea();
                } else {
                    mHandler.sendEmptyMessage(SHOW_STREET);
                }
            }
        });

handler接收消息 處理操作

private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case SHOW_PROVINCE:
                    showProvince();
                    break;
                case SHOW_CITY:
                    showCity();
                    break;
                case SHOW_STREET:
                    showStreet();
                    break;
            }
        }
    };

UI顯示

 private void showProvince() {
        AreaSelectDialog provinceDialog = new AreaSelectDialog(this,proviceEntityList,choosedProvince);
        provinceDialog.setmOnDialogChangedListener(new AreaSelectDialog.OnDialogChangedListener() {
            @Override
            public void onDialogChanged(String currentItem) {
                tvProvince.setText(currentItem);
                if (!TextUtils.isEmpty(choosedProvince) && choosedProvince.equals(currentItem)) {
                    if (!TextUtils.isEmpty(choosedCity)) {
                        tvCity.setText(choosedCity);
                    }
                    if (!TextUtils.isEmpty(choosedCounty)) {
                        tvCounty.setText(choosedCounty);
                    }
                } else {
                    if (HONG_KONG.equals(currentItem) || MA_KAO.equals(currentItem)) {
                        tvCity.setText("");
                        tvCounty.setText("");
                    } else {
                        tvCity.setText("請選擇城市");
                        tvCounty.setText("請選擇縣區(qū)");
                    }
                }
            }
            @Override
            public void onBackPressed() {
            }
            @Override
            public void onDismissedListener(String currentItem) {
                if (!TextUtils.isEmpty(choosedProvince) && !choosedProvince.equals(currentItem)) {
                    choosedCity = "";
                    choosedCounty = "";
                    tvCity.setText("請選擇城市");
                    tvCounty.setText("請選擇縣區(qū)");
                }
                if (HONG_KONG.equals(currentItem) || MA_KAO.equals(currentItem)) {
                    flag = HONG_KONG_OR_AO_MEN;
                    choosedCity = "";
                    choosedCounty = "";
                    tvCity.setText(choosedCity);
                    tvCounty.setText(choosedCounty);
                }
                choosedProvince = currentItem;
                tvProvince.setText(choosedProvince);
                if (flag == 2 || flag == 3) {
                    showCity();
                }
            }
        });
    }

 private void showCity() {
        if (TextUtils.isEmpty(choosedProvince)) {
            mHandler.sendEmptyMessage(SHOW_PROVINCE);
            return;
        }//如果省沒選,那就讓他去選省
        if (proviceEntityList == null) {
            requestArea();
        }
        for (AreaEntity areaEntity : proviceEntityList) {
            if (choosedProvince.equals(areaEntity.getName())) {
                cityEntityList = areaEntity.getSecond();
            }
        }
        AreaSelectDialog cityDialog = new AreaSelectDialog(this, cityEntityList, choosedCity);
        cityDialog.setmOnDialogChangedListener(new AreaSelectDialog.OnDialogChangedListener() {
            @Override
            public void onDialogChanged(String currentItem) {
                tvCity.setText(currentItem);
                if (!TextUtils.isEmpty(choosedCity) && choosedCity.equals(currentItem)) {
                    if (!TextUtils.isEmpty(choosedCounty)) {
                        tvCounty.setText(choosedCounty);
                    }
                } else {
                    tvCounty.setText("請選擇縣區(qū)");
                }
            }
            @Override
            public void onBackPressed() {
                flag = 0;
            }
            @Override
            public void onDismissedListener(String currentItem) {
                if (!TextUtils.isEmpty(choosedCity) && !choosedCity.equals(currentItem)) {
                    choosedCounty = "";
                    tvCounty.setText("請選擇縣區(qū)");
                }
                choosedCity = currentItem;
                tvCity.setText(choosedCity);
                if (flag == 3) {
                    mHandler.sendEmptyMessage(SHOW_STREET);
                }
            }
        });
    }

 private void showStreet() {
        //如果市沒選,那就讓他去選市
        if (TextUtils.isEmpty(choosedCity)) {
            mHandler.sendEmptyMessage(SHOW_CITY);
            return;
        }
        if (cityEntityList == null) {
            for (AreaEntity areaEntity : proviceEntityList) {
                if (choosedProvince.equals(areaEntity.getName())) {
                    cityEntityList = areaEntity.getSecond();
                }
            }
        }
        for (AreaEntity.SecondEntity secondEntity : cityEntityList) {
            if (choosedCity.equals(secondEntity.getName())) {
                StreetEntityList = secondEntity.getThree();
            }
        }
        AreaSelectDialog streetDialog = new AreaSelectDialog(this, StreetEntityList, choosedCounty);
        streetDialog.setmOnDialogChangedListener(new AreaSelectDialog.OnDialogChangedListener() {
            @Override
            public void onDialogChanged(String currentItem) {
                tvCounty.setText(currentItem);
            }
            @Override
            public void onBackPressed() {
                flag = 0;
            }
            @Override
            public void onDismissedListener(String currentItem) {
                choosedCounty = currentItem;
                tvCounty.setText(choosedCounty);
            }
        });
    }

貼出AreaSelectDialog代碼 使用到了WheelView

public class AreaSelectDialog {
    private  ArrayList mList;
    private  String currentItem;
    private Context mContext;
    private AlertDialog mAlertDialog;
    private Window mWindow;
    private WheelView mWheel;
    private JSONArray dataArray = new JSONArray();
    public AreaSelectDialog(Context context, ArrayList mlist, String item){
        this.mContext = context;
        this.mList = mlist;
        this.currentItem = item;
        mAlertDialog = new AlertDialog.Builder(context, R.style.MyDialog).create();
        mAlertDialog.setCanceledOnTouchOutside(true);
        mAlertDialog.setCancelable(true);
        mAlertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
            @Override
            public boolean onKey(DialogInterface dialog, int keyCode,
                                 KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_SEARCH) {
                    return true;
                } else {
                    return false;
                }
            }
        });
        mAlertDialog.show();
        mAlertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                if (mOnDialogChangedListener != null &&!TextUtils.isEmpty(getCurrentItem())) {
                    mOnDialogChangedListener.onDismissedListener(getCurrentItem());
                }
            }
        });
        //設(shè)置dialog為屏幕寬度
        WindowManager.LayoutParams params = mAlertDialog.getWindow().getAttributes();
        params.width = WindowManager.LayoutParams.FILL_PARENT;
        mAlertDialog.getWindow().setAttributes(params);
        // 關(guān)鍵在下面的兩行,使用window.setContentView,替換整個對話框窗口的布局
        mWindow = mAlertDialog.getWindow();
        mWindow.setContentView(R.layout.dialog_choose_area);

        mAlertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
            @Override
            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                if(keyCode == KeyEvent.KEYCODE_BACK){
                    if (mOnDialogChangedListener != null) {
                        mOnDialogChangedListener.onBackPressed();
                        mAlertDialog.cancel();
                        return true;
                    }
                }
                return false;
            }
        });
        RelativeLayout panel = (RelativeLayout) mAlertDialog.findViewById(R.id.lin_area);
        panel.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mAlertDialog.dismiss();
                return false;
            }
        });
        try {
            initWheelView();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 初始化WheelView控件
     */
    private void initWheelView() throws Exception {
        //左側(cè)列表
        mWheel = (WheelView) mWindow.findViewById(R.id.wv_area);
        mWheel.setVisibleItems(5);
        mWheel.setCyclic(false);
        mWheel.setAdapter(new ListWheelAdapter(mList, 5));
        if (TextUtils.isEmpty(currentItem)) {
            int leftIdx = dataArray.length() / 2;
            mWheel.setCurrentItem(leftIdx);
        }else{
            for (int i = 0; i < mList.size(); i++) {
                if(currentItem.equals(mList.get(i).toString())){
                    mWheel.setCurrentItem(i);
                    break;
                }
            }
        }
        mWheel.addChangingListener(new OnWheelChangedListener() {
            @Override
            public void onChanged(WheelView wheel, int oldValue, int newValue) {
                if (mOnDialogChangedListener != null) {
                    mOnDialogChangedListener.onDialogChanged(getCurrentItem());
                }
            }
        });
    }

    /**
     * 獲取當(dāng)前-數(shù)據(jù)對象
     *
     * @return
     */
    public String getCurrentItem() {

        if(mList == null){
            return "";
        }
        int leftPos = mWheel.getCurrentItem();
        Object item = mList.get(leftPos);
        return item.toString();
    }
    /**
     * 關(guān)閉對話框
     */
    public void dismiss() {
        mAlertDialog.dismiss();
    }
    /**
     * 未選擇器-填充數(shù)據(jù)
     *
     * @param result
     * @throws Exception
     */
    private void initView(String result) throws Exception {

        JSONObject obj = new JSONObject(result);
        dataArray = obj.optJSONArray("data");
        initWheelView();
    }
    private OnDialogChangedListener mOnDialogChangedListener;
    public void setmOnDialogChangedListener(OnDialogChangedListener mOnDialogChangedListener) {
        this.mOnDialogChangedListener = mOnDialogChangedListener;
    }
    public interface OnDialogChangedListener {
        void onDialogChanged(String currentItem);
        void onBackPressed();
        void onDismissedListener(String currentItem);
    }
}

代碼具體下載地址
http://download.csdn.net/detail/feibendexiaoma/9767025

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,637評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,482評論 0 17
  • —“在干嘛?” —“什么事? —“想你了唄,聊聊天” 總是會有一些人在你上學(xué),上班的時候問你在干嘛,問你在不在,還...
    麻栗啊閱讀 309評論 0 0
  • 好多天的雨和大霧,今天同樣如此,離家的前半段還是陽光恰好,到公司的后半段就是大霧彌漫,總是不開警示燈和大燈是不行的...
    jimmyfool閱讀 991評論 0 0
  • 我需要三件東西:愛情友誼和圖書。然而這三者之間何其相通!熾熱的愛情可以充實圖書的內(nèi)容,圖書又是人們最忠實的朋友。 ...
    嵐風(fēng)的葉子閱讀 196評論 0 0