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