使用spinner实现省市二级级联

来源:互联网 发布:淘宝服装摄影人像抠图 编辑:程序博客网 时间:2024/04/27 14:44

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

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() {@Overridepublic 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