登录 立即注册
安币:

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

仿京东地址选择器

[复制链接]
来自: sdsadsadasdasd 分类: Android精品源码 上传时间: 2017-1-11 15:15:52
Tag:

项目介绍:

一个 Android 版京东手机客户端(当前版本V1..0.0 )风格的级联地址选择器。
添加依赖
在build.gradle 中:
[Java] 查看源文件 复制代码
dependencies {
    ...
    compile 'com.smarttop:jd-address:1.0.8'
}
使用方法
[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();
content.addView(view);
默认的样式
自定义样式
[Java] 查看源文件 复制代码
//设置字体的大小
selector.setTextSize(14);

//设置指示器的背景颜色

selector.setIndicatorBackgroundColor("#00ff00");
[Java] 查看源文件 复制代码
selector.setIndicatorBackgroundColor(android.R.color.holo_orange_light);

//设置字体的背景

selector.setBackgroundColor(android.R.color.holo_red_light);

//设置字体获得焦点的颜色

selector.setTextSelectedColor(android.R.color.holo_orange_light);

//设置字体没有获得焦点的颜色

selector.setTextUnSelectedColor(android.R.color.holo_blue_light);

//自定义dialog的样式

 dialog.setTextSize(14);//设置字体的大小
 dialog.setIndicatorBackgroundColor(android.R.color.holo_orange_light);//设置指示器的颜色
 dialog.setTextSelectedColor(android.R.color.holo_orange_light);//设置字体获得焦点的颜色
 dialog.setTextUnSelectedColor(android.R.color.holo_blue_light);//设置字体没有获得焦点的颜色
效果图

BottomDialog 弹出地址选择器的dialog的用法及回调BottomDialog dialog = new BottomDialog(context);dialog.setOnAddressSelectedListener(this);dialog.setDialogDismisListener(this);dialog.show();  [email protected]   public void onAddressSelected(Province province, City city, County county, Street street) {        provinceCode = (province == null ? "" : province.code);        cityCode = (city == null ? "" : city.code);        countyCode = (county == null ? "" : county.code);        streetCode = (street == null ? "" : street.code);        LogUtil.d("数据", "省份id=" + provinceCode);        LogUtil.d("数据", "城市id=" + cityCode);        LogUtil.d("数据", "乡镇id=" + countyCode);        LogUtil.d("数据", "街道id=" + streetCode);        String s = (province == null ? "" : province.name) + (city == null ? "" : city.name) + (county == null ? "" : county.name) +                (street == null ? "" : street.name);        tv_selector_area.setText(s);        if (dialog != null) {            dialog.dismiss();        }    }    @Override    public void dialogclose() {        if(dialog!=null){            dialog.dismiss();        }    }
有朋友问,怎么使用自己的数据源,这里我说明一下,因为我的数据库里的地址表,省,市,区,县,镇,都是用同一个表,根据parentId来查询的。
想用自己的数据源,就需要把自己的数据源里,各个字段与我的数据源里字段一一对应(id, parentId, code, name),分别对应的中文意思(id,父id(可根据父id查询下一级),地址编码,中文名字)
然后在你的项目里的assets目录下,放上你的数据库,名字一定是"address.db".
如果你用的是android studio 应该放在
在源数据库里要添加一个数据 AdressBean.ChangeRecordsBean changeRecordsBean = new AdressBean.ChangeRecordsBean();
    changeRecordsBean.parentId = 0;    changeRecordsBean.name = "测试省";    changeRecordsBean.id = 35;    addressDictManager.inserddress(changeRecordsBean);
还可以进行已下操作 增加一个数据 inserddress(AdressBean.ChangeRecordsBean adress) 增加一个集合insertAddress(List list)
更新数据 updateAddressInfo(AdressBean.ChangeRecordsBean adress)
查找数据 getAddressList()
获取省市列表 getProvinceList()
根据省市id 获取城市列表 getCityList(int provinceId)
获取城市对应的区,乡镇列表 getCountyList(int cityId)
获取区,乡镇对应的街道列表 getStreetList(int countyId)
查找消息临时列表中是否存在这一条记录 isExist()

相关源码推荐:

我来说两句
*滑动验证:
所有评论(102)
snowqoo228 2017-1-11 15:17:48
感谢分享,楼主V5~
回复
allow.xuweibin 2017-1-11 15:19:28
mark,收藏了
回复
设女郎 2017-1-11 15:21:19
感谢分享,安卓巴士有你更精彩:lol
回复
葫芦_eRDJw 2017-1-11 15:28:56
写的真的很不错
回复
东西南北 2017-1-11 16:14:47
好好 学习了 确实不错
回复
ffg12 2017-1-11 16:30:46
感谢分享,楼主V5~
回复
czb145116 2017-1-11 20:20:36
感谢分享,安卓巴士有你更精彩:)
回复
提取码:  下载次数:42 状态:已购或VIP 售价:10(原价:10)金钱 下载权限:限制会员 
2225 2 42
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
13802416937
Email:
[email protected]
商务市场合作/投稿
问题反馈及帮助
联系我们

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

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