private Spinner province,city,area;
private Map>> data=null;
/**当前的选择的省份**/
private String currentProvince;
/**当前的选择的城市**/
private String currentCity;
private PullProvince pullProvince;
// /**当前的选择的区**/
// private String currentArea;
private Handler mHandler=new Handler(){
@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.what) {
case PullProvince.PARSESUCCWSS://数据解析完毕,加载数据
data=(Map>>) msg.obj;
initData();
break;
default:
break;
}
super.handleMessage(msg);
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user2);
province=(Spinner)findViewById(R.id.province);
city=(Spinner)findViewById(R.id.city);
area=(Spinner)findViewById(R.id.area);
pullProvince=new PullProvince(mHandler);
AssetManager asset = getAssets();
InputStream input;
try {
input = asset.open("province_data.xml");
pullProvince.getProvinces(input);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
initView();
initParams();
initListnner();
}
/**
* 初始化数据
*/
private void initData(){
if (data!=null) {
String[]arrStrings= data.keySet().toArray(new String[0]);
System.out.println(arrStrings);
//将省份信息填充到 province Spinner
province.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1,arrStrings));
currentProvince=getCurrentProvince();
bindCityAdapter(currentProvince);
currentCity=getCurrentCity();
bindAreaAdapter(currentCity);
setOnItemSelectedListener();
}
}
private void bindAreaAdapter(String currentCity) {
// TODO Auto-generated method stub
//根据当前显示的城市将对应的区填充到area Spinner
area.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1,
data.get(currentProvince).get(currentCity)));
}
private void bindCityAdapter(String currentProvince) {
// TODO Auto-generated method stub
//根据当前显示的省份将对应的城市填充到city Spinner
city.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1,data.
get(currentProvince).keySet().toArray(new String[0])));
}
/**
* 为Spinner设置监听器
*/
private void setOnItemSelectedListener() {
// TODO Auto-generated method stub
province.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
currentProvince=getCurrentProvince();
bindCityAdapter(currentProvince);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
city.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
currentCity=getCurrentCity();
bindAreaAdapter(currentCity);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
area.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
// Toast.makeText(MainActivity.this,area.getSelectedItem().toString(),
// Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
/**获取当前选择的省份
* @return String:当前选择的省份
*/
private String getCurrentProvince() {
// TODO Auto-generated method stub
return province.getSelectedItem().toString();
}
/**获取当前选择的城市
* @return String:当前选择的城市
*/
private String getCurrentCity() {
// TODO Auto-generated method stub
return city.getSelectedItem().toString();
}