2015-10-11 2 views
-1

Я новичок в картах Google и должен отображать страну пользователей в текстовом виде. В настоящее время мое приложение отображает широту, долготу и адрес. Теперь мне нужна страна.Карты Google, необходимо отобразить страну в TextView

я заявил следующее:

private LocationManager locationManager; 
private Location myLocation; 

И под OnCreate

lblAddress = (TextView) findViewById(R.id.tvAddress); 

Чтобы получить адрес я использовал;

private String getCompleteAddressString(double LATITUDE, double LONGITUDE, int x) 
{ 
    String strAdd = ""; 
    Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
    try 
    { 
     List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1); 
     if (addresses != null) 
     { 
      Address returnedAddress = addresses.get(0); 
      StringBuilder strReturnedAddress = new StringBuilder(""); 


      for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) 
      { 
       strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n"); 
      } 
      strAdd = strReturnedAddress.toString(); 

     } 
    } 
    catch (Exception e) 
    { 
     lblAddress.setText("Your address cannot be determined"); 
    } 
    return strAdd; 
} 

Теперь, как мне получить страну таким же образом?

+0

'returnAddress.getCountryName()' –

+0

Не могли бы вы уточнить? Сожалею. –

ответ

0

У вас уже есть адрес, вы можете просто называть его getCountryName().

Что я хотел бы сделать, это создать класс POJO, так что вы можете вернуть как адрес и страну от метода:

class MyLocation { 
    public String address; 
    public String country; 
} 

Затем, сделать вызов метода возвращает экземпляр MyLocation и заполнить оба Адрес и страна перед возвратом:

private MyLocation getCompleteAddressString(double LATITUDE, double LONGITUDE, int x) 
{ 
    String strAdd = ""; 
    Geocoder geocoder = new Geocoder(this, Locale.getDefault()); 
    MyLocation myLocation = new MyLocation(); //added 
    try 
    { 
     List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1); 
     if (addresses != null) 
     { 
      Address returnedAddress = addresses.get(0); 
      StringBuilder strReturnedAddress = new StringBuilder(""); 
      myLocation.country = returnedAddress.getCountryName(); //added 

      for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) 
      { 
       strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n"); 
      } 
      strAdd = strReturnedAddress.toString(); 
      myLocation.address = strAdd; //added 

     } 
    } 
    catch (Exception e) 
    { 
     lblAddress.setText("Your address cannot be determined"); 
    } 
    return myLocation; //modified 
} 

Обязательно выполните нулевые проверки возвращаемых значений.

MyLocation loc = getCompleteAddressString(lat, lon, x); 
    if (loc.address != null) { 
     //use to populate Address TextView 
    } 
    if (loc.country != null) { 
     //use to populate Country TextView 
    } 
+0

Thx попробует :) –

+0

String strAdd = getCompleteAddressString (широта, долгота, 1); - этот раздел выше получил ошибку, когда я сделал предложенные изменения. –

+0

Вам нужно присвоить возвращаемое значение экземпляру MyLocation, посмотрите на последний блок кода. –

Смежные вопросы