2012-11-02 163 views
0

我有一個應用程序,可將地理座標經度緯度&轉換爲可讀地址。這是下面的代碼示例:反向地址解析和附加地址詳細信息

protected List<Address> doInBackground(Double... params) { 
      try { 

       List<Address> addresses = geoCoder.getFromLocation(mylat, 
         mylong, 1); 
       StringBuilder sBuilder = new StringBuilder(); 
       if (addresses.size() > 0) { 
        Address address = addresses.get(0); 

        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { 
         /** 
         * Returns a line of the address numbered by the 
         * given index (starting at 0), or null if no such 
         * line is present. 
         */ 
         sBuilder.append(address.getAddressLine(i)).append(
           "\n"); 
         //////////// 
         //////////// 
         // sBuilder.append(address.getLocality()).append("\n"); 
         //sBuilder.append(address.getPostalCode()).append("\n");   
        }// end for 
        addressString = sBuilder.toString(); 

       }// end if 
       return geoCoder.getFromLocation(params[0], params[1], 1); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       return null; 
      }// end catch 
     }// end doInBackground method 

我想修改它,如果POSTALCODE爲空,然後打印什麼,如果它收到一個值,顯示它的其他細節機智HTHE休息。問題是我住在一個不使用郵政編碼的國家,這就是爲什麼這部分代碼目前被註釋掉了。如果您在使用國家/地區的國家/地區(大部分都是這樣做的),則希望該應用能夠顯示郵政編碼,如果您位於我的國家或類似的國家/地區,而且不使用郵政編碼,則可以忽略不用。

任何人都可以推薦什麼樣的改變,我需要讓這個?我相信我需要添加邏輯來處理字符串的附加處理:

sBuilder.append(address.getPostalCode()).append("\n"); 

謝謝。 :)

回答

1

我想你應該只是在那裏添加一個條件。

if (address.getPostalCode() != null) 
{ 
    sBuilder.append(address.getPostalCode()).append("\n"); 
} 
else 
{ 
    // do nothing. 
} 

還是不是你想要的東西?

+0

完美,我不知道爲什麼一個簡單的if語句沒有出現在我身上。謝謝! – GrumP

相關問題