京东地址选择器

参照github上JDAddressSelector

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io"}
    }
}
模块的 build.gradle 中:

dependencies {
    ...
    compile 'com.github.chihane:JDAddressSelector:1.1.4'
}


在activity中先实现OnAddressSelectedListener接口:
有两种:
1.本身是fragment
 FrameLayout frameLayout = (FrameLayout) findViewById(R.id.frameLayout);

        AddressSelector selector = new AddressSelector(this);
        selector.setOnAddressSelectedListener(this);

//        selector.setAddressProvider(new TestAddressProvider());

  assert frameLayout != null;
        frameLayout.addView(selector.getView());

@Override
    public void onAddressSelected(Province province, City city, County county, Street street) {
        String s =
                (province == null ? "" : province.name) +
                (city == null ? "" : "\n" + city.name) +
                (county == null ? "" : "\n" + county.name) +
                (street == null ? "" : "\n" + street.name);

       吐司s即可
    }

//第二种:放在dialog中:

Button buttonBottomDialog = (Button) findViewById(R.id.buttonBottomDialog);
        assert buttonBottomDialog != null;
        buttonBottomDialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                BottomDialog.show(MainActivity.this, MainActivity.this);
                BottomDialog dialog = new BottomDialog(MainActivity.this);
                dialog.setOnAddressSelectedListener(MainActivity.this);
                dialog.show();
            }
        });


@Override
    public void onAddressSelected(Province province, City city, County county, Street street) {
        String s =
                (province == null ? "" : province.name) +
                (city == null ? "" : "\n" + city.name) +
                (county == null ? "" : "\n" + county.name) +
                (street == null ? "" : "\n" + street.name);

       吐司s即可
    }



//如果需要TestAddressProvider类
public class TestAddressProvider implements AddressProvider {
    @Override
    public void provideProvinces(AddressReceiver<Province> addressReceiver) {
        Province province = new Province();
        province.id = 1;
        province.name = "测试用省份";
        addressReceiver.send(Collections.singletonList(province));
    }

    @Override
    public void provideCitiesWith(int provinceId, AddressReceiver<City> addressReceiver) {
        City city = new City();
        city.province_id = provinceId;
        city.id = 2;
        city.name = "测试用城市";
        addressReceiver.send(Collections.singletonList(city));
    }

    @Override
    public void provideCountiesWith(int cityId, AddressReceiver<County> addressReceiver) {
        County county = new County();
        county.city_id = cityId;
        county.id = 3;
        county.name = "测试用乡镇";
        addressReceiver.send(Collections.singletonList(county));
    }

    @Override
    public void provideStreetsWith(int countyId, AddressReceiver<Street> addressReceiver) {
        Street street = new Street();
        street.county_id = countyId;
        street.id = 4;
        street.name = "测试用街道";
        addressReceiver.send(Collections.singletonList(street));
    }
}



布局中:
  <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:layout_alignParentBottom="true" />

    <Button
        android:id="@+id/buttonBottomDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="BottomDialog" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值