登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

京东 Android 客户端样式的级联地址选择器

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-7-5 15:44:54
Tag:
立即下载
收藏

项目介绍:

游客,如果您要查看本帖隐藏内容请回复

一个 Android 版京东手机客户端(当前版本V5.0.1 build 28529)风格的级联地址选择器。



image



添加依赖



项目的

[Java] 查看源文件 复制代码
build.gradle
中:



[Java] 查看源文件 复制代码
allprojects {
    repositories {
        ...
        maven { url \"https://jitpack.io\"}
    }
}


模块的

[Java] 查看源文件 复制代码
build.gradle
中:



[Java] 查看源文件 复制代码
dependencies {
    ...
    compile 'com.github.chihane:JDAddressSelector:1.1.3'
}


使用方法



使用原始视图



[Java] 查看源文件 复制代码
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



[Java] 查看源文件 复制代码
BottomDialog dialog = new BottomDialog(context);
dialog.setOnAddressSelectedListener(listener);
dialog.show();


使用自定义数据源



[Java] 查看源文件 复制代码
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 
    }
});



相关源码推荐:

我来说两句
所有评论(187)
guopj2012 2016-7-5 16:08:59
很想找这么一个东西,很不错
回复
guopj2012 2016-7-5 16:37:38
楼主的对话框很好看,谢谢分享
回复
Frank_z 2016-7-5 16:55:49
学习...学习...
回复
guopj2012 2016-7-5 17:09:50
虽不明,但觉厉!
回复
tylz 2016-7-5 17:23:34
mark,收藏了
回复
chaoyue 2016-7-5 17:55:45
好好 学习了 确实不错
回复
belle 2016-7-5 18:25:25
帮帮顶顶!!
回复
上传代码
查看数:6616 收藏数:19 下载数: 点赞数:3
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表