android 实现省市区三级联动

最近弄了一个省市区的三级联动,当然了,web端的就不说了,毕竟网上一搜一大堆,代码量不大,引入一个依赖直接调用就ok

首先引入依赖


 //省市区联动
    implementation 'liji.library.dev:citypickerview:0.7.0'

然后直接调用就ok

在你的Activity中初始化控件,然后设置它的点击事件


@Override
    public void onClick(View v) {
        switch (v.getId()){
          
            case R.id.ll_address:
                String address = tv_address.getText().toString();
                String[] arr = address.split(",");
                //判断输入法的隐藏状态
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm.isActive()) {
                    imm.hideSoftInputFromWindow(v.getWindowToken(),
                            InputMethodManager.HIDE_NOT_ALWAYS);
                    selectAddress(arr[0],arr[1]);//调用CityPicker选取区域
                }
                break;
        }
    }


 private void selectAddress(String province,String city) {
        CityPicker cityPicker = new CityPicker.Builder(PersonDataActivity.this)
                .textSize(14)
                .title("地址选择")
                .titleBackgroundColor("#FFFFFF")
                .confirTextColor("#696969")
                .cancelTextColor("#696969")
                .province(province)
                .city(city)
                .textColor(Color.parseColor("#000000"))
                .provinceCyclic(true)
                .cityCyclic(false)
                .districtCyclic(false)
                .visibleItemsCount(7)
                .itemPadding(10)
                .onlyShowProvinceAndCity(true)//false为三级联动,true为二级联动
                .build();
        cityPicker.show();
        //监听方法,获取选择结果
        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];

            }
        });
    }

OK,大功告成。

你可能感兴趣的:(Android)