android地址联动选择器,仿京东样式Android 客户端的级联地址选择器
一个 Android 版京东手机客户端(当前版本V5.0.1 build 28529)风格的级联地址选择器。添加依赖项目的build.gradle中:allprojects {repositories {...maven { url "https://jitpack.io"}}}模块的build.gradle中:dependencies {...compile 'com.github.ch...
一个 Android 版京东手机客户端(当前版本V5.0.1 build 28529)风格的级联地址选择器。
添加依赖
项目的 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 addressReceiver) {
List provinces = // blahblahblah
addressReceiver.send(provinces);
}
@Override
public void provideCitiesWith(int provinceId, AddressReceiver addressReceiver) {
new Thread(new Runnable() {
@Override
public void run() {
List cities = // blahblahblah
addressReceiver.send(cities);
}
}).start();
}
@Override
public void provideCountiesWith(int cityId, AddressReceiver addressReceiver) {
addressApi.counties(cityId)
.subscribeOn(Schedulers.io())
.subscribe(new Action1>() {
@Override
public void call(List counties) {
addressReceiver.send(counties);
}
}, new Action1() {
@Override
public void call(Throwable throwable) {
addressReceiver.send(null);
}
});
}
@Override
public void provideStreetsWith(int countyId, AddressReceiver addressReceiver) {
// blahblahblah
}
});
更多推荐
所有评论(0)