下面是我的代码,我总是得到null subLocality ....
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude,longitude, 1);
String suburb = addresses.get(0).getSubLocality();
String state = addresses.get(0).getAdminArea();
String zip = addresses.get(0).getPostalCode();
String country = addresses.get(0).getCountryName();
Log.e("Log for data",""+suburb+" "+state+" "+zip+" "+country);
以下是我的回复;
null Gujarat 380006 India
答案 0 :(得分:2)
Geocoder API 将根据lat
long
返回值,如果API
数据库没有以下值:subLocality
那么它只会返回null
,据我所知您对此无能为力。您必须妥善处理这些情况,以免您的应用崩溃。
处理这些情况包括必须使用if
进行检查,条件是特定值是null
或具有某个值,因为如果您在代码中的某个位置使用了任何值而没有检查和如果该值为null
,则只要该特定值为null
,应用程序可能就会崩溃。
答案 1 :(得分:0)
我也遇到了同样的问题,可以通过增加从Geocoder API请求的结果数量来解决。
尝试将其增加到10
self.
然后,如果您的子地区为List<Address> addresses = geocoder.getFromLocation(latitude,longitude, 10);
结果为null,请尝试在其余部分中搜索相同的