JDAddressSelector
介绍:
京东 Android 客户端样式的级联地址选择器。
运行效果:
使用说明:
添加依赖
项目的 build.gradle 中:
allprojects {
repositories {
...
maven { url "https://jitpack.io"}
}
}
模块的 build.gradle 中:
dependencies {
...
compile 'com.github.chihane:JDAddressSelector:1.1.3'
}
使用原始视图
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<Province> addressReceiver) {
List<Province> provinces = // blahblahblah
addressReceiver.send(provinces);
}
@Override
public void provideCitiesWith(int provinceId, AddressReceiver<City> addressReceiver) {
new Thread(new Runnable() {
@Override
public void run() {
List<City> cities = // blahblahblah
addressReceiver.send(cities);
}
}).start();
}
@Override
public void provideCountiesWith(int cityId, AddressReceiver<County> addressReceiver) {
addressApi.counties(cityId)
.subscribeOn(Schedulers.io())
.subscribe(new Action1<List<County>>() {
@Override
public void call(List<County> counties) {
addressReceiver.send(counties);
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
addressReceiver.send(null);
}
});
}
@Override
public void provideStreetsWith(int countyId, AddressReceiver<Street> addressReceiver) {
// blahblahblah
}
});
已下载
0