我正在使用谷歌地图V2。我想使用geocoder
来查找位置,但是getFromLocationName()
它返回了我的空值,我无法找到原因。只要看看我的代码并建议我,我该怎么办?
EditText sLocation = (EditText) v.findViewById(R.id.editText1);
String location = sLocation.getText().toString();
List<android.location.Address> addressList= null;
if (location != null || !location.equals("")) {
Geocoder geocoder = new Geocoder(getActivity().getApplicationContext());
try {
addressList = geocoder.getFromLocationName(location, 1);
} catch (IOException e) {
e.printStackTrace();
}
android.location.Address address = addressList.get(0);
LatLng latlng = new LatLng(address.getLatitude(), address.getLatitude());
gMap.addMarker(new MarkerOptions().position(latlng).title("Marker"));
gMap.animateCamera(CameraUpdateFactory.newLatLng(latlng));
}
答案 0 :(得分:1)
我从getFromLocationName()
获得了空值。因为,我的addressList
正在获得&#34; null&#34;来自位置的价值。当我在EditText
方法中声明我的onClick
时,getFromLocationName()
会返回正确的值,如下所示:
sButton =(Button) v.findViewById(R.id.generalId);
sButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText sLocation = (EditText)getActivity().findViewById(R.id.editText1);
location = sLocation.getText().toString();
List<android.location.Address> addressList= null;
if (location != null || location.length()>0) {
Geocoder geocoder = new Geocoder(getActivity().getApplicationContext());
try {
addressList = geocoder.getFromLocationName(location, 1);
} catch (IOException e) {
e.printStackTrace();
}
android.location.Address address = addressList.get(0);
String locality = address.getLocality();
Toast.makeText(getActivity(), locality, Toast.LENGTH_LONG).show();
double latitude = address.getLatitude();
double longitude = address.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
gMap.addMarker(new MarkerOptions().position(latLng).title("Marker"));
gMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
}
});