0
使用地理編碼器從地址獲取座標。當我從Geocoder獲得答案時,我向用戶展示一個對話框,以便他可以選擇正確的地址(可以是遍佈世界各地的許多同名街道)。這是方法:在繼續執行之前等待對話框中的用戶響應
private LatLng parsearDireccion(String direccion) {
Geocoder coder = new Geocoder(c);
try {
adress = (ArrayList<Address>) coder.getFromLocationName(direccion, 30);
if(adress.size()>0){
AlertDialog.Builder builderSingle = new AlertDialog.Builder(
LeaveParamsActivity.this);
builderSingle.setTitle(getString(R.string.selectaddress));
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
c,
android.R.layout.select_dialog_singlechoice);
for(int i=0;i<adress.size();i++){
String ciudad=adress.get(i).getLocality();
String calle=adress.get(i).getThoroughfare();
if(calle==null){
calle=adress.get(i).getAddressLine(0);
}
if(ciudad==null){
ciudad=adress.get(i).getSubLocality();
}
if(ciudad==null){
ciudad=adress.get(i).getAdminArea();
}
arrayAdapter.add(calle+","+ciudad);
}
builderSingle.setAdapter(arrayAdapter,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Address location = adress.get(which);
lat = location.getLatitude();
lon = location.getLongitude();
dialog.dismiss();
}
});
builderSingle.show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
LatLng coords=new LatLng(lat, lon);
return coords;
}
的問題是,我得到對話框選項用戶點擊前返回...等,座標爲null。我該如何等待用戶單擊對話框中的某個選項,然後繼續執行該程序?
謝謝。
我怕我不明白...的經緯度來自用戶選擇對話框。用戶在對話框中選擇適當的街道(地址對象),然後從用戶選擇的地址中獲得LatLng。 – Fustigador
所以當他們點擊存儲緯度和經度,並製作一個公共的LatLng,甚至是靜態的,你可以訪問你需要的地方 – JRowan
問題是我需要立即LatLng在我出現Dialog之後...並執行程序不會等待用戶點擊繼續... – Fustigador