0
我正在努力获取地址在Android的点击地图。我正在使用Geocoder来获取当前位置经过的经纬度。地理编码器获取地址列表。当我尝试使用StringBuilder来分割并返回地址时,我得到一个空结果。这个相同的代码在模拟器中工作,但是当我在我的LG Android设备中运行代码时,我没有得到任何地址值。这是我到目前为止所尝试的。StringBuilder不附加位置地址
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
Double lat = latLng.latitude;
Double lng = latLng.longitude;
String address = getAddressFromLatLng(latLng);
}
});
private String getAddressFromLatLng(LatLng latLng) {
Toast.makeText(getContext(), "Inside getAddress", Toast.LENGTH_SHORT).show();
Geocoder geocoder = new Geocoder(getActivity());
StringBuilder strReturnedAddress=null;
try {
List<Address> addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
if(addresses != null){
Toast.makeText(getContext(), "Addresses is not null", Toast.LENGTH_SHORT).show();
Address returnedAddress = addresses.get(0);
Toast.makeText(getContext(), "Returned address " + returnedAddress, Toast.LENGTH_SHORT).show();
strReturnedAddress = new StringBuilder();
Toast.makeText(getContext(), "str address " + strReturnedAddress, Toast.LENGTH_SHORT).show();
for(int i=0; i < returnedAddress.getMaxAddressLineIndex(); i++){
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append(",");
}
}
} catch (IOException e) {
e.printStackTrace();
}
return strReturnedAddress.toString();
}
来自返回地址的Toast实际上返回一个地址列表。在那之后,我做了strReturnedAddress = new StringBuilder();
。地址后面的toast语句返回null。这只发生在一个真实的设备上。相同的代码在仿真器中很有用。任何帮助表示赞赏。
strReturnedAddress = new StringBuilder();
Toast.makeText(getContext(), "str address " + strReturnedAddress, Toast.LENGTH_SHORT).show();
for(int i=0; i < returnedAddress.getMaxAddressLineIndex(); i++){
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append(",");
}
要
strReturnedAddress = new StringBuilder();
for(int i=0; i < returnedAddress.getMaxAddressLineIndex(); i++){
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append(",");
}
Toast.makeText(getContext(), "str address " + strReturnedAddress, Toast.LENGTH_SHORT).show();
你得到 '空' 的原因是,你的 'strReturnedAddress' 实际上是空的:
什么是Geocoder?这是返回null,所以请添加它 –
'“str地址”+ strReturnedAddress'将永远是空的,看来 –