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'將永遠是空的,看來 –