使用spinner实现省市二级级联

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

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

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

1)省份:

ArrayAdapter<CharSequence> _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<CharSequence> _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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值