使用spinner实现省市二级级联

历经几天查阅更改终于把这个功能实现了,回想起来:用新技术实现想要的结果同时我们不能紧抓住一个问题不放。一个方法不行我们可以寻找其他方法,切不可一条路走到黑!

spinner:提供一种下拉列表选择的输入方式,可以节省有限的屏幕空间占用。实现他很简单,但是在两者之间建立联系时就需注意了。

这里首先“省”,第一级我们无需改动,将其放入适配器显示即可;第二级“市”,需要根据省来确定:

1)省份:

ArrayAdapter _Adapter = ArrayAdapter.createFromResource(
				this, R.array.spinnerprovince,
				android.R.layout.simple_spinner_item);
		_Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		province.setAdapter(_Adapter);

2)根据省份显示城市:

// 点击省份对应城市数据绑定
		province.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView parent, View view,
					int position, long id) {
				Spinner spinner = (Spinner) parent;
				String pro = (String) spinner.getItemAtPosition(position);
				// 默认显示城市
				ArrayAdapter _BAdapter = ArrayAdapter
						.createFromResource(MarketActivity.this,
								R.array.cityofshandong,
								android.R.layout.simple_spinner_item);
				// 点击省市显示相应城市
				if (pro.equals("山东省")) {
					_BAdapter = ArrayAdapter.createFromResource(
							MarketActivity.this, R.array.cityofshandong,
							android.R.layout.simple_spinner_item);
				} else if (pro.equals("山西省")) {
					_BAdapter = ArrayAdapter.createFromResource(
							MarketActivity.this, R.array.cityofshanxi,
							android.R.layout.simple_spinner_item);
				} else if (pro.equals("安徽省")) {
					_BAdapter = ArrayAdapter.createFromResource(
							MarketActivity.this, R.array.cityofanhui,
							android.R.layout.simple_spinner_item);
				}
				_BAdapter
						.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
				city.setAdapter(_BAdapter);
			}

其中默认城市只需在array里设定即可(同上一篇array)。

这里是重要代码,希望可以帮到有些迷茫的同学。新手可以到我空间下载demo源代码,帮助学习(可运行、有注释)。

源代码下载地址:http://download.csdn.net/download/duyuping/6237573

你可能感兴趣的:(使用spinner实现省市二级级联)