package com.mrwujay.cascade.activity;
import com.mrwujay.cascade.R;
import com.mrwujay.cascade.R.id;
import com.mrwujay.cascade.R.layout;
import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.WheelView;
import kankan.wheel.widget.adapters.ArrayWheelAdapter;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends BaseActivity implements OnClickListener, OnWheelChangedListener {
private WheelView mViewProvince;
private WheelView mViewCity;
private WheelView mViewDistrict;
private Button mBtnConfirm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpViews();
setUpListener();
setUpData();
}
private void setUpViews() {
mViewProvince = (WheelView) findViewById(R.id.id_province);
mViewCity = (WheelView) findViewById(R.id.id_city);
mViewDistrict = (WheelView) findViewById(R.id.id_district);
mBtnConfirm = (Button) findViewById(R.id.btn_confirm);
}
private void setUpListener() {
// 添加change事件
mViewProvince.addChangingListener(this);
// 添加change事件
mViewCity.addChangingListener(this);
// 添加change事件
mViewDistrict.addChangingListener(this);
// 添加onclick事件
mBtnConfirm.setOnClickListener(this);
}
private void setUpData() {
initProvinceDatas();
mViewProvince.setViewAdapter(new ArrayWheelAdapter<String>(MainActivity.this, mProvinceDatas));
// 设置可见条目数量
mViewProvince.setVisibleItems(7);
mViewCity.setVisibleItems(7);
mViewDistrict.setVisibleItems(7);
updateCities();
updateAreas();
}
@Override
public void onChanged(WheelView wheel, int oldValue, int newValue) {
// TODO Auto-generated method stub
if (wheel == mViewProvince) {
updateCities();
} else if (wheel == mViewCity) {
updateAreas();
} else if (wheel == mViewDistrict) {
mCurrentDistrictName = mDistrictDatasMap.get(mCurrentCityName)[newValue];
mCurrentZipCode = mZipcodeDatasMap.get(mCurrentDistrictName);
}
}
/**
* 根据当前的市,更新区WheelView的信息
*/
private void updateAreas() {
int pCurrent = mViewCity.getCurrentItem();
mCurrentCityName = mCitisDatasMap.get(mCurrentProviceName)[pCurrent];
String[] areas = mDistrictDatasMap.get(mCurrentCityName);
if (areas == null) {
areas = new String[] { "" };
}
mViewDistrict.setViewAdapter(new ArrayWheelAdapter<String>(this, areas));
mViewDistrict.setCurrentItem(0);
}
/**
* 根据当前的省,更新市WheelView的信息
*/
private void updateCities() {
int pCurrent = mViewProvince.getCurrentItem();
mCurrentProviceName = mProvinceDatas[pCurrent];
String[] cities = mCitisDatasMap.get(mCurrentProviceName);
if (cities == null) {
cities = new String[] { "" };
}
mViewCity.setViewAdapter(new ArrayWheelAdapter<String>(this, cities));
mViewCity.setCurrentItem(0);
updateAreas();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_confirm:
showSelectedResult();
break;
default:
break;
}
}
private void showSelectedResult() {
Toast.makeText(MainActivity.this, "当前选中:" mCurrentProviceName "," mCurrentCityName ","
mCurrentDistrictName "," mCurrentZipCode, Toast.LENGTH_SHORT).show();
}
}
资源文件列表
Cascade_Master/.classpath , 475
Cascade_Master/.project , 850
Cascade_Master/.settings/org.eclipse.core.resources.prefs , 87
Cascade_Master/AndroidManifest.xml , 889
Cascade_Master/assets/province_data.xml , 190445
Cascade_Master/gen/com/mrwujay/cascade/BuildConfig.java , 161
Cascade_Master/gen/com/mrwujay/cascade/R.java , 2939
Cascade_Master/ic_launcher-web.png , 51394
Cascade_Master/libs/android-support-v4.jar , 621451
Cascade_Master/proguard-project.txt , 781
Cascade_Master/project.properties , 563
Cascade_Master/res/drawable/wheel_bg.xml , 849
Cascade_Master/res/drawable/wheel_val.xml , 1055
Cascade_Master/res/drawable-hdpi/ic_launcher.png , 7658
Cascade_Master/res/drawable-mdpi/ic_launcher.png , 3777
Cascade_Master/res/drawable-xhdpi/ic_launcher.png , 12516
Cascade_Master/res/drawable-xxhdpi/ic_launcher.png , 24777
Cascade_Master/res/layout/activity_main.xml , 2180
Cascade_Master/res/menu/main.xml , 263
Cascade_Master/res/values/colors.xml , 118
Cascade_Master/res/values/dimens.xml , 220
Cascade_Master/res/values/strings.xml , 231
Cascade_Master/res/values/styles.xml , 697
Cascade_Master/res/values-sw600dp/dimens.xml , 203
Cascade_Master/res/values-sw720dp-land/dimens.xml , 277
Cascade_Master/res/values-v11/styles.xml , 334
Cascade_Master/res/values-v14/styles.xml , 391
Cascade_Master/src/com/mrwujay/cascade/activity/BaseActivity.java , 4019
Cascade_Master/src/com/mrwujay/cascade/activity/MainActivity.java , 3568
Cascade_Master/src/com/mrwujay/cascade/model/CityModel.java , 781
Cascade_Master/src/com/mrwujay/cascade/model/DistrictModel.java , 653
Cascade_Master/src/com/mrwujay/cascade/model/ProvinceModel.java , 728
Cascade_Master/src/com/mrwujay/cascade/service/XmlParserHandler.java , 2196
Cascade_Master/src/kankan/wheel/widget/ItemsRange.java , 1762
Cascade_Master/src/kankan/wheel/widget/OnWheelChangedListener.java , 1160
Cascade_Master/src/kankan/wheel/widget/OnWheelClickedListener.java , 1084
Cascade_Master/src/kankan/wheel/widget/OnWheelScrollListener.java , 1060
Cascade_Master/src/kankan/wheel/widget/WheelAdapter.java , 1271
Cascade_Master/src/kankan/wheel/widget/WheelRecycle.java , 3538
Cascade_Master/src/kankan/wheel/widget/WheelScroller.java , 7293
Cascade_Master/src/kankan/wheel/widget/WheelView.java , 24105
Cascade_Master/src/kankan/wheel/widget/adapters/AbstractWheelAdapter.java , 2102
Cascade_Master/src/kankan/wheel/widget/adapters/AbstractWheelTextAdapter.java , 8281
Cascade_Master/src/kankan/wheel/widget/adapters/AdapterWheel.java , 1578
Cascade_Master/src/kankan/wheel/widget/adapters/ArrayWheelAdapter.java , 1566
Cascade_Master/src/kankan/wheel/widget/adapters/NumericWheelAdapter.java , 2387
Cascade_Master/src/kankan/wheel/widget/adapters/WheelViewAdapter.java , 2040
