2016-12-08 32 views
-3

アドレスの配列をlatlngに変換しようとしていますが、範囲外であるとエラーを出しますが、アドレスは存在していて空でないことを意味します。IndexOutOfBoundsException:無効なインデックス0、サイズは0です - アドレスの配列をlatlngに変換する

エラー:

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at java.util.ArrayList.get(ArrayList.java:308) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at homeseek.app.android.capstonehomeseek.ListingNearbyResults.getLocationFromAddress(ListingNearbyResults.java:425) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at homeseek.app.android.capstonehomeseek.ListingNearbyResults.jsonDetails(ListingNearbyResults.java:238) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at homeseek.app.android.capstonehomeseek.ListingNearbyResults.access$000(ListingNearbyResults.java:65) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at homeseek.app.android.capstonehomeseek.ListingNearbyResults$1.onResponse(ListingNearbyResults.java:199) 
12-08 12:39:57.160 15521-15521/homeseek.app.android.capstonehomeseek W/System.err:  at homeseek.app.android.capstonehomeseek.ListingNearbyResults$1.onResponse(ListingNearbyResults.java:196) 

配列値:

{ "リスト":[{ "PROPERTY_ID": "1"、 "PROPERTY_NAME": "HOTD"、 "物件の":」ボード ハウス " "用語": "月刊"、 "都市": "ダバオ"、" アドレス ":" 337モンテベルデST、 ダバオ 都市」、 "lot_area": ""、 "floor_area" : ""、 "price": "2000"、 "bedroom": "1"、 "bathroom": "1"、 "host_nam "host_contact_no": "09457642546"、 "host_details": "heeididudbeksdidh"、 "date_listed": "2016-12-06"}、{"property_id": "2"、 "property_name": "ドン ロレンツォ レジデンス " "物件の": "ハウス"、 "用語": "週刊"、 "都市": "ダバオ"、 "住所":"サン ロレンツォ・ビレッジ、Puanダバオ 市"、" "room_area": "" floor_area ":" "" price ":" 25000 "、" bedroom ":" 1 "、" bathroom ":" 1 "、" host_name ":" Glordel Capidos "、" host_contact_no " : "09123456789"、 "host_details": "詳細 上記の番号 情報に連絡してください"、 "date_listed": "2016-12-06"}、{"property_id": "3"、 "property_name": "sample "、" property_type ":" Board House "、" term ":" Monthly "、" city ":" Davao "、" address ":""2000"、 "ベッドルーム": "2"、 "バスルーム": "2"、 "0"、 "0"、 "0"、 "0" "HOST_NAME": "jords"、 "host_contact_no": "0910987263"、 "host_details": "サンプル"、 "date_listed": "2016年12月6日"}]、 "hasData":真}

ここでエラーが発生した私が向けてしまったコードの一部です:

public LatLng getLocationFromAddress(Context context,String strAddress) { 

     Geocoder coder = new Geocoder(context); 
     List<Address> address; 
     LatLng p1 = null; 

     try { 
      address = coder.getFromLocationName(strAddress, 5); 
      if (address == null) { 
       return null; 
      } 
      Address location = address.get(0); 
      location.getLatitude(); 
      location.getLongitude(); 

      p1 = new LatLng(location.getLatitude(), location.getLongitude()); 

     } catch (Exception ex) { 

      ex.printStackTrace(); 
     } 

     return p1; 
    } 

アドレス位置= address.get(0)。

ここでは、getlocationfromAddress()メソッドを使用します。

if(hasData){ 
       Toast.makeText(getApplicationContext(), arrayResponse.length() + " properties found.", Toast.LENGTH_SHORT).show(); 
       for(int x = 0; x < arrayResponse.length(); x++) { 
        JSONObject jsonObject = arrayResponse.getJSONObject(x); 
        property_id[x] = jsonObject.getString("property_id"); 
        property_name[x] = jsonObject.getString("property_name"); 
        type[x] = jsonObject.getString("property_type"); 
        price[x] = jsonObject.getString("price"); 
        address[x] = jsonObject.getString("address"); 

        LatLng latLng = getLocationFromAddress(this, address[x]); 
        latitude = latLng.latitude; 
        longitude = latLng.longitude; 

        locationA = new Location("point A"); 

        locationA.setLatitude(mLat); 
        locationA.setLongitude(mLng); 

        locationB = new Location("point B"); 

        locationB.setLatitude(latitude); 
        locationB.setLongitude(longitude); 

        double listingDistance = locationA.distanceTo(locationB)/1000; 
        distance[x] = Math.round(listingDistance); 

       } 

PLSは、String型の変数に第一号店自分の価値観、代わりに、直接配列を使用してのおかげ

答えて

0

を支援し、その後のArrayListに保存し、後でそれを使用し、このよう

List<String> property=new ArrayList<>(); 

ここではforループが使用されています。

String property_id=jsonObject.getString("property_id"); 
property.add(property_id); 
+0

大丈夫ですか。 –

関連する問題