Android UI控件之Spinner实现省市区三级联动

这篇博客介绍了如何使用Android的Spinner组件实现省市区三级联动的效果。通过XML文件和数组作为数据源,详细展示了实现这一功能的具体步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                 上一篇文章中了解到了Spinner的简单用法,知道了Spinner的数据源一般有两种形式。

        XML文件和数组的方式。这次的内容主要是想在Spinner上实现省市区三级联动,话不多说了

         直接上效果图吧!

            城市信息我将他放在strings.xml文件中,具体就不给出了,信息太大了

           主xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusableInTouchMode="false" >

    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="20px"
        android:stretchColumns="1" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10px"
            android:scrollbarAlwaysDrawVerticalTrack="false" >

            <TextView
                android:id="@+id/province_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="省份:" >
            </TextView>

            <Spinner
                android:id="@+id/province_spinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </Spinner>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10px"
            android:scrollbarAlwaysDrawVerticalTrack="false" >

            <TextView
                android:id="@+id/city_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="城市:" >
            </TextView>

            <Spinner
                android:id="@+id/city_spinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </Spinner>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10px"
            android:scrollbarAlwaysDrawVerticalTrack="false" >

            <TextView
                android:id="@+id/county_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="县城镇:" >
            </TextView>

            <Spinner
                android:id="@+id/county_spinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </Spinner>
        </TableRow>

        <EditText
            android:id="@+id/display_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusableInTouchMode="false"
            android:hint="输出结果"
            android:paddingTop="10px" >
        </EditText>
    </TableLayout>

</RelativeLayout>
             MainAcitivty问价如下:

/**
 * 省市县联动
 * 
 * kiritor
 * 
 * 2011.3.17
 */
package com.kiritor.ui_spinner_baseadapter;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;

public class MainActivity extends Activity {
    private Spinner province_spinner;
    private Spinner city_spinner;
    private Spinner county_spinner;
    private Integer provinceId, cityId;
    private EditText display;
    private String strProvince, strCity, strCounty;
   //市,自治区集合
    private int[] city = { R.array.beijin_province_item,
            R.array.tianjin_province_item, R.array.heibei_province_item,
            R.array.shanxi1_province_item, R.array.neimenggu_province_item,
            R.array.liaoning_province_item, R.array.jilin_province_item,
            R.array.heilongjiang_province_item, R.array.shanghai_province_item,
            R.array.jiangsu_province_item, R.array.zhejiang_province_item,
            R.array.anhui_province_item, R.array.fujian_province_item,
            R.array.jiangxi_province_item, R.array.shandong_province_item,
            R.array.henan_province_item, R.array.hubei_province_item,
            R.array.hunan_province_item, R.array.guangdong_province_item,
            R.array.guangxi_province_item, R.array.hainan_province_item,
            R.array.chongqing_province_item, R.array.sichuan_province_item,
            R.array.guizhou_province_item, R.array.yunnan_province_item,
            R.array.xizang_province_item, R.array.shanxi2_province_item,
            R.array.gansu_province_item, R.array.qinghai_province_item,
            R.array.linxia_province_item, R.array.xinjiang_province_item,
            R.array.hongkong_province_item, R.array.aomen_province_item,
            R.array.taiwan_province_item };
    private int[] countyOfBeiJing = { R.array.beijin_city_item };
    private int[] countyOfTianJing = { R.array.tianjin_city_item };
    private int[] countyOfHeBei = { R.array.shijiazhuang_city_item,
            R.array.tangshan_city_item, R.array.qinghuangdao_city_item,
            R.array.handan_city_item, R.array.xingtai_city_item,
            R.array.baoding_city_item, R.array.zhangjiakou_city_item,
            R.array.chengde_city_item, R.array.cangzhou_city_item,
            R.array.langfang_city_item, R.array.hengshui_city_item };
    private int[] countyOfShanXi1 = { R.array.taiyuan_city_item,
            R.array.datong_city_item, R.array.yangquan_city_item,
            R.array.changzhi_city_item, R.array.jincheng_city_item,
            R.array.shuozhou_city_item, R.array.jinzhong_city_item,
            R.array.yuncheng_city_item, R.array.xinzhou_city_item,
            R.array.linfen_city_item, R.array.lvliang_city_item };
    private int[] countyOfNeiMengGu = { R.array.huhehaote_city_item,
            R.array.baotou_city_item, R.array.wuhai_city_item,
            R.array.chifeng_city_item, R.array.tongliao_city_item,
            R.array.eerduosi_city_item, R.array.hulunbeier_city_item,
            R.array.bayannaoer_city_item, R.array.wulanchabu_city_item,
            R.array.xinganmeng_city_item, R.array.xilinguolemeng_city_item,
            R.array.alashanmeng_city_item };
    private int[] countyOfLiaoNing = { R.array.shenyang_city_item,
            R.array.dalian_city_item, R.array.anshan_city_item,
            R.array.wushun_city_item, R.array.benxi_city_item,
            R.array.dandong_city_item, R.array.liaoning_jinzhou_city_item,
            R.array.yingkou_city_item, R.array.fuxin_city_item,
            R.array.liaoyang_city_item, R.array.panjin_city_item,
            R.array.tieling_city_item, R.array.zhaoyang_city_item,
            R.array.huludao_city_item };
    private int[] countyOfJiLin = { R.array.changchun_city_item,
            R.array.jilin_city_item, R.array.siping_city_item,
            R.array.liaoyuan_city_item, R.array.tonghua_city_item,
            R.array.baishan_city_item, R.array.songyuan_city_item,
            R.array.baicheng_city_item, R.array.yanbian_city_item };
    private int[] countyOfHeiLongJiang = { R.array.haerbing_city_item,
            R.array.qiqihaer_city_item, R.array.jixi_city_item,
            R.array.hegang_city_item, R.array.shuangyashan_city_item,
            R.array.daqing_city_item, R.array.heilongjiang_yichun_city_item,
            R.array.jiamusi_city_item, R.array.qitaihe_city_item,
            R.array.mudanjiang_city_item, R.array.heihe_city_item,
            R.array.suihua_city_item, R.array.daxinganling_city_item };
    private int[] countyOfShangHai = { R.array.shanghai_city_item };

    private int[] countyOfJiangSu = { R.array.nanjing_city_item,
            R.array.wuxi_city_item, R.array.xuzhou_city_item,
            R.array.changzhou_city_item, R.array.nanjing_suzhou_city_item,
            R.array.nantong_city_item, R.array.lianyungang_city_item,
            R.array.huaian_city_item, R.array.yancheng_city_item,
            R.array.yangzhou_city_item, R.array.zhenjiang_city_item,
            R.array.jiangsu_taizhou_city_item, R.array.suqian_city_item };
    private int[] countyOfZheJiang = { R.array.hangzhou_city_item,
            R.array.ningbo_city_item, R.array.wenzhou_city_item,
            R.array.jiaxing_city_item, R.array.huzhou_city_item,
            R.array.shaoxing_city_item, R.array.jinhua_city_item,
            R.array.quzhou_city_item, R.array.zhoushan_city_item,
            R.array.zejiang_huzhou_city_item, R.array.lishui_city_item };
    private int[] countyOfAnHui = { R.array.hefei_city_item,
            R.array.wuhu_city_item, R.array.bengbu_city_item,
            R.array.huainan_city_item, R.array.maanshan_city_item,
            R.array.huaibei_city_item, R.array.tongling_city_item,
            R.array.anqing_city_item, R.array.huangshan_city_item,
            R.array.chuzhou_city_item, R.array.fuyang_city_item,
            R.array.anhui_suzhou_city_item, R.array.chaohu_city_item,
            R.array.luan_city_item, R.array.haozhou_city_item,
            R.array.chizhou_city_item, R.array.xuancheng_city_item };
    private int[] countyOfFuJian = { R.array.huzhou_city_item,
            R.array.xiamen_city_item, R.array.putian_city_item,
            R.array.sanming_city_item, R.array.quanzhou_city_item,
            R.array.zhangzhou_city_item, R.array.nanp_city_item,
            R.array.longyan_city_item, R.array.ningde_city_item };
    private int[] countyOfJiangXi = { R.array.nanchang_city_item,
            R.array.jingdezhen_city_item, R.array.pingxiang_city_item,
            R.array.jiujiang_city_item, R.array.xinyu_city_item,
            R.array.yingtan_city_item, R.array.ganzhou_city_item,
            R.array.jian_city_item, R.array.jiangxi_yichun_city_item,
            R.array.jiangxi_wuzhou_city_item, R.array.shangrao_city_item };
    private int[] countyOfShanDong = { R.array.jinan_city_item,
            R.array.qingdao_city_item, R.array.zaobo_city_item,
            R.array.zaozhuang_city_item, R.array.dongying_city_item,
            R.array.yantai_city_item, R.array.weifang_city_item,
            R.array.jining_city_item, R.array.taian_city_item,
            R.array.weihai_city_item, R.array.rizhao_city_item,
            R.array.laiwu_city_item, R.array.linxi_city_item,
            R.array.dezhou_city_item, R.array.liaocheng_city_item,
            R.array.shandong_bingzhou_city_item, R.array.heze_city_item };
    private int[] countyOfHeNan = { R.array.zhenshou_city_item,
            R.array.kaifang_city_item, R.array.luoyang_city_item,
            R.array.kaipingshan_city_item, R.array.anyang_city_item,
            R.array.hebi_city_item, R.array.xinxiang_city_item,
            R.array.jiaozuo_city_item, R.array.buyang_city_item,
            R.array.xuchang_city_item, R.array.leihe_city_item,
            R.array.sanmenxia_city_item, R.array.nanyang_city_item,
            R.array.shangqiu_city_item, R.array.xinyang_city_item,
            R.array.zhoukou_city_item, R.array.zhumadian_city_item };
    private int[] countyOfHuBei = { R.array.wuhan_city_item,
            R.array.huangshi_city_item, R.array.shiyan_city_item,
            R.array.yichang_city_item, R.array.xiangpan_city_item,
            R.array.erzhou_city_item, R.array.jinmen_city_item,
            R.array.xiaogan_city_item, R.array.hubei_jinzhou_city_item,
            R.array.huanggang_city_item, R.array.xianning_city_item,
            R.array.suizhou_city_item, R.array.enshi_city_item,
            R.array.shenglongjia_city_item };

    private int[] countyOfHuNan = { R.array.changsha_city_item,
            R.array.zhuzhou_city_item, R.array.xiangtan_city_item,
            R.array.hengyang_city_item, R.array.shaoyang_city_item,
            R.array.yueyang_city_item, R.array.changde_city_item,
            R.array.zhangjiajie_city_item, R.array.yiyang_city_item,
            R.array.hunan_bingzhou_city_item, R.array.yongzhou_city_item,
            R.array.huaihua_city_item, R.array.loudi_city_item,
            R.array.xiangxi_city_item };
    private int[] countyOfGuangDong = { R.array.guangzhou_city_item,
            R.array.shaoguan_city_item, R.array.shenzhen_city_item,
            R.array.zhuhai_city_item, R.array.shantou_city_item,
            R.array.foshan_city_item, R.array.jiangmen_city_item,
            R.array.zhangjiang_city_item, R.array.maoming_city_item,
            R.array.zhaoqing_city_item, R.array.huizhou_city_item,
            R.array.meizhou_city_item, R.array.shanwei_
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值