2011-09-11 5 views
0

Google지도 뷰에 마커를 넣는 비동기 메서드가 있습니다. 아래의 코드에서 객체 오버레이를 onProgressUpdate 메소드에 전달하려고합니다. itemizedOverlay.addOverlay가 배열을 기대하지 않는다는 컴파일러 오류가 발생합니다. overlayitem이 배열 (즉, overlayitem [])로 전달되는 이유를 혼동합니다. 누구든지 도와 줄 수 있습니까?onProgressUpdate 인수 전달 문제 - 비동기 메서드

class OverlayLoader extends AsyncTask<Void, OverlayItem, Void> { 
    List<Overlay> mapOverlays; 

    @Override 
    protected void onPreExecute() { 
     mapOverlays = mapView.getOverlays(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     SQLiteDatabase db = mDbHelper.getReadableDatabase(); 

     Cursor mCursor = db.query(TABLE_NAME, null, null, null, null, null, null); 

     startManagingCursor(mCursor); 

     OverlayItem overlayitem = null; 

     while (mCursor.moveToNext()) { 

      Address = mCursor.getString(4); 
      Name = mCursor.getString(0); 

      String noSpaces = Address.replaceAll(" ", "+"); 

      JSONObject geocoded = getLocationInfo(noSpaces); 
      GeoPoint point = getGeoPoint(geocoded); 

      overlayitem = new OverlayItem(point, Name, Address); 

      publishProgress(overlayitem); 
     } 
     return null; 
     } 

    protected void onProgressUpdate(OverlayItem... overlayitem) { 
     List<Overlay> mapOverlays = mapView.getOverlays(); 
     String x = "@Hello"; 
     Log.e("Hello",""+x); 
     Drawable drawable = maptabview.this.getResources().getDrawable(R.drawable.pushpin); 
     CustomizedItemOverlay itemizedOverlay = 
      new CustomizedItemOverlay(drawable, maptabview.this); 

     itemizedOverlay.addOverlay(overlayitem); 
     mapOverlays.add(itemizedOverlay); 
    } 
} 

답변

1

이 그것을 할 것입니다 :

itemizedOverlay.addOverlay(overlayitem[0]); 

설명을 다음 OverlayItem...varargs를 불러 발표 형식의 배열입니다.

+0

감사합니다. 마침내! – GuybrushThreepwood