Android省市区三级联动和地区定位

来源:互联网 发布:网络教育毕业总结 编辑:程序博客网 时间:2024/05/23 01:23

废话不多说,直接上效果图

这里写图片描述

这里写图片描述

1 导入依赖库

compile ‘com.github.open-android:citypicker:0.1.0’

2 地区定位

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //首先跳转到列表页面,通过startActivityForResult实现页面跳转传值        Intent intent = new Intent(MainActivity.this, CityListSelectActivity.class);        startActivityForResult(intent, CityListSelectActivity.CITY_SELECT_RESULT_FRAG);    }    //接收选择器选中的结果:    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == CityListSelectActivity.CITY_SELECT_RESULT_FRAG) {            if (resultCode == RESULT_OK) {                if (data == null) {                    return;                }                Bundle bundle = data.getExtras();                CityInfoBean cityInfoBean = (CityInfoBean) bundle.getParcelable("cityinfo");                if (null == cityInfoBean)                    return;                //城市名称                String cityName = cityInfoBean.getName();                //纬度                String latitude = cityInfoBean.getLongitude();                //经度                String longitude = cityInfoBean.getLatitude();                //获取到城市名称,经纬度值后可自行使用...            }        }    }}

3 省市区三级联动

public class Main2Activity extends AppCompatActivity {    private Button button;    private CityPicker cityPicker;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        initCityPicker(Main2Activity.this);        initView();    }    private void initView() {        button = (Button) findViewById(R.id.choose);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                cityPicker.show();            }        });    }    private void initCityPicker(final Context context) {        cityPicker = new CityPicker.Builder(context)                .textSize(20)                .backgroundPop(0xa0000000)                .title("地址选择")                .titleBackgroundColor("#d9ead3")                .titleTextColor("#000000")                .confirTextColor("#00ff00")                .cancelTextColor("#ff0000")                .province("北京市")                .city("北京市")                .district("海淀区")                .textColor(Color.parseColor("#000000"))                .provinceCyclic(true)                .cityCyclic(false)                .districtCyclic(false)                .visibleItemsCount(7)                .itemPadding(10)                .onlyShowProvinceAndCity(false)                .build();        cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {            @Override            public void onSelected(String... citySelected) {                //省份                String province = citySelected[0];                //城市                String city = citySelected[1];                //区县(如果设定了两级联动,那么该项返回空)                String district = citySelected[2];                //邮编                String code = citySelected[3];            }            @Override            public void onCancel() {                Toast.makeText(context, "已取消", Toast.LENGTH_LONG).show();            }        });    }}

去年9月份做项目一直在找这种demo,现在找到了很好的依赖库,希望大家都可以使用哦

原创粉丝点击