Android仿美团城市定位选择器_城市地区选择样式源代码下载
程序员文章站
2022-03-01 13:01:26
...
ContactList是一款仿美团城市选择界面、滑动的时候会在屏幕*显示拼音的首字母、效果非常流畅的、并附有定位城市界面的设计、相信一般项目上都可以使用到、下面是Demo运行的效果
初始化代码
private void InitLocation() { // 设置定位参数 LocationClientOption option = new LocationClientOption(); option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(10000); // 10分钟扫描1次 // 需要地址信息,设置为其他任何值(string类型,且不能为null)时,都表示无地址信息。 option.setAddrType("all"); // 设置是否返回POI的电话和地址等详细信息。默认值为false,即不返回POI的电话和地址信息。 option.setPoiExtraInfo(true); // 设置产品线名称。强烈建议您使用自定义的产品线名称,方便我们以后为您提供更高效准确的定位服务。 option.setProdName("通过GPS定位我当前的位置"); // 禁用启用缓存定位数据 option.disableCache(true); // 设置最多可返回的POI个数,默认值为3。由于POI查询比较耗费流量,设置最多返回的POI个数,以便节省流量。 option.setPoiNumber(3); // 设置定位方式的优先级。 // 当gps可用,而且获取了定位结果时,不再发起网络请求,直接返回给用户坐标。这个选项适合希望得到准确坐标位置的用户。如果gps不可用,再发起网络请求,进行定位。 option.setPriority(LocationClientOption.GpsFirst); mLocationClient.setLocOption(option); }
a-z排序代码
@SuppressWarnings("rawtypes") Comparator comparator = new Comparator<City>() { @Override public int compare(City lhs, City rhs) { String a = lhs.getPinyi().substring(0, 1); String b = rhs.getPinyi().substring(0, 1); int flag = a.compareTo(b); if (flag == 0) { return a.compareTo(b); } else { return flag; } } };
实现实位回调监听代码
public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation arg0) { Log.e("info", "city = " arg0.getCity()); if (!isNeedFresh) { return; } isNeedFresh = false; if (arg0.getCity() == null) { locateProcess = 3; // 定位失败 personList.setAdapter(adapter); adapter.notifyDataSetChanged(); return; } currentCity = arg0.getCity().substring(0, arg0.getCity().length() - 1); locateProcess = 2; // 定位成功 personList.setAdapter(adapter); adapter.notifyDataSetChanged(); } @Override public void onReceivePoi(BDLocation arg0) { } }
最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看
源代码下载链接: LocateCity仿美团城市选择界面 密码: eaa8
上一篇: centos7 k8s搭建
下一篇: Centos7 一步一步搭建K8S环境