# JDAddressSelector **Repository Path**: dcx/JDAddressSelector ## Basic Information - **Project Name**: JDAddressSelector - **Description**: 京东 Android 客户端样式的级联地址选择器 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-11-23 - **Last Updated**: 2022-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JDAddressSelector 一个 Android 版京东手机客户端(当前版本V5.0.1 build 28529)风格的级联地址选择器。 ![image](https://github.com/chihane/JDAddressSelector/raw/master/screenshots/screenshot1.jpg) ## 添加依赖 项目的 `build.gradle` 中: allprojects { repositories { ... maven { url "https://jitpack.io"} } } 模块的 `build.gradle` 中: dependencies { ... compile 'com.github.chihane:JDAddressSelector:1.1.4' } ## 使用方法 ### 使用原始视图 AddressSelector selector = new AddressSelector(context); selector.setOnAddressSelectedListener(new AddressSelector.OnAddressSelectedListener() { @Override public void onAddressSelected(Province province, City city, County county, Street street) { // blahblahblah } }); View view = selector.getView(); // frameLayout.addView(view) // new AlertDialog.Builder(context).setView(view).show() // ... ### BottomDialog BottomDialog dialog = new BottomDialog(context); dialog.setOnAddressSelectedListener(listener); dialog.show(); ### 使用自定义数据源 selector.setAddressProvider(new AddressProvider() { @Override public void provideProvinces(AddressReceiver addressReceiver) { List provinces = addressApi.provincesFromDatabase(); addressReceiver.send(provinces); } @Override public void provideCitiesWith(int provinceId, AddressReceiver addressReceiver) { new Thread(() -> { List cities = addressApi.citiesSync(provinceId); addressReceiver.send(cities); }).start(); } @Override public void provideCountiesWith(int cityId, AddressReceiver addressReceiver) { addressApi.counties(cityId) .subscribeOn(Schedulers.io()) .subscribe( counties -> addressReceiver.send(counties), throwable -> addressReceiver.send(null) ); } @Override public void provideStreetsWith(int countyId, AddressReceiver addressReceiver) { // blahblahblah } }); ## 关于我 **Chihane Habana** - - - ## 许可证 [MIT License](http://chihane.in/license)