上一篇文章中了解到了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_c