全球地区选择,支持中英文切换。国家-省市-城市-地区

最近项目中,突然要按照微信做一个地区选择,还要支持中英文切换,做地区选择器其实不难,主要是要有数据,网上查了很久,最后只找到微信地区选择的中文和英文的text,本人也很无奈,最后也写了一个小程序,将这两份数据整合到一起做了一个db文件,本来以为做好了,但是无奈项目又要求中国还有区的数据,微信里面也没有,本人只能自己动手导了。做程序员还是真苦逼。。。接下来进入正题。
附上程序效果图。。。

这里写图片描述

上面是高德定位的数据。。暂时没办法支持英文。我也只能大概做做。。主要代码贴一贴大家看看。。真做不出来的话,大家在咨询我。。我在做个demo给大家。。。
先是db文件。。大家可以通过SQLite Expert Professional 4 - 64bit打开文件看看里面的主要数据部分。。附上截图

这里写图片描述

从图中大家可以很容易看到。。该数据库中主要有4个表country,city,province,area..就是国家-省份-城市-地区。。每个表都有以下字段就是code为主键,parentCode为父类编号,china_name对应中文名字,english_name对应英文名字,childCount为子集合数量。
首先将db文件存到工程中

我这里是做了个工具类去打开db文件。。至于如何打开操作。。我就不多说了。。大家不懂自行百度。。
首先进入地址选择。我们应该获取所有国家列表,填充列表。

dbManager.copyDBFile(DbGlobal.GLOBAL_AREA_DB_NAME,R.raw.global_area);
 dbManager.getAllCountry(mHandler, new ResponseInterface() {
            @Override
            public void onSuccessResponse(Object response) {
                mDatas = (List<CountryModel>) response;
                notifyAdapter();
            }

            @Override
            public void onErrorResponse(ResponseBean result) {

            }
        });
        });

这里写图片描述

这里写图片描述

这里写图片描述

CountryMode是一个bean类。就是表中每行数据对应一个CountryModel, AreaSelectModl主要用来保存用户选择。比如用户选择选完国家。给AreaSelectModel的国家字段附上值,然后传递国家code和AreaSelectModel到省份选择,根据code获取province表中parantCode == code的所有数据,选择完省份在将AreaSelectModel的省份字段赋值,然后传递省份code和AreaSelectModel到城市选择,依次类推,直到childCount为0,关闭所有界面,传递AreaSelectModl到填充地址界面。。。。。
地区选择就是一些列表展示,主要逻辑我已经说得很清楚了哦。。。
第一次自己写自己博客文章,有点乱,,大家别介意。喜欢的给个关注,以后在项目中有用到实用的东西还会继续写。下面附上db文件链接。demo暂时没写,看需求多不多,我在写。
http://download.csdn.net/detail/qq_31168885/9906623

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值