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 为空,则不打印任何内容,如果它接收到一个值,则将其与其余其他详细信息一起显示。问题是我住在一个不使用邮政编码的国家,这就是为什么这部分代码目前被注释掉的原因。如果您在一个使用邮政编码的国家/地区(大多数都这样做!),我希望该应用程序显示邮政编码,如果您在我的国家或不使用邮政编码的类似国家,则忽略缺少邮政编码。

谁能推荐我需要做哪些改变才能允许这样做?我相信我需要添加逻辑来处理这里的字符串附加:

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

谢谢。:)

4

1 回答 1

1

我认为你应该在那里添加一个条件。

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

还是不是你想要的?

于 2012-11-02T12:33:56.587 回答