5

郵便番号を取得しようとしていますが、zipcode (郵便番号) を取得できません。現在の都市を取得できますが、郵便番号を取得しようとすると、null ポインター例外が発生します。誰でも私を助けることができますか?

final Geocoder gcd = new Geocoder(getApplicationContext(),
                Locale.getDefault());

List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1);
if (addresses.size() > 0)                                   Log.d(addresses.get(0).getLocality()); // I can get city name here.
Log.d(addresses.get(0).getPostalCode();// here i am getting nullpoiter exception
4

4 に答える 4

8

以下のようにGoogleロケーションAPIを呼び出さずに、アンドロイド組み込みジオコーダを使用して緯度と経度から詳細を取得してみてください。

Gecoderを使用して初期化Context:

final Geocoder gcd = new Geocoder(context);

Lat-Long からの結果として取得Addressします。ここでは (10) 最大結果。

List<Address> addresses = gcd.getFromLocation(latitude, longitude, 10);

結果を反復して、必要な場所の詳細を取得します。

for (Address address : addresses) {
    if(address.getLocality()!=null && address.getPostalCode()!=null){
        Log.d(address.getLocality());
        Log.d(address.getPostalCode();
       break;
    }
}
于 2013-09-02T08:39:56.717 に答える
7
    Geocoder geocoder = new Geocoder(this, Locale.ENGLISH);
    List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
    Address address=null;
    String addr="";
    String zipcode="";
    String city="";
    String state="";
    if (addresses != null && addresses.size() > 0){

            addr=addresses.get(0).getAddressLine(0)+"," +addresses.get(0).getSubAdminArea();
                 city=addresses.get(0).getLocality();
                 state=addresses.get(0).getAdminArea();

                 for(int i=0 ;i<addresses.size();i++){
                     address = addresses.get(i);
                     if(address.getPostalCode()!=null){
                         zipcode=address.getPostalCode();
                         break;
                     }

                }
于 2014-04-10T15:56:35.333 に答える