我有一个应用程序反向地理编码纬度和经度为可读地址。以下是代码示例:
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为null,则不打印,如果收到值,则显示其余的其他细节。问题是我住在一个不使用邮政编码的国家,这就是为什么这部分代码目前被注释掉了。我希望该应用程序显示邮政编码,如果您所在的国家/地区使用它们(大部分都可以!),如果您在我的国家/地区或不使用邮政编码的类似邮件,请忽略不存在邮政编码。< / p>
任何人都可以推荐我需要进行哪些更改才能允许此操作?我相信我需要添加逻辑来处理字符串的追加:
sBuilder.append(address.getPostalCode()).append("\n");
感谢。 :)
答案 0 :(得分:1)
我认为你应该在那里添加一个条件。
if (address.getPostalCode() != null)
{
sBuilder.append(address.getPostalCode()).append("\n");
}
else
{
// do nothing.
}
或者这不是你想要的东西?