2011-09-11 15 views
0

Googleマップビューにマーカーを配置する非同期メソッドがあります。下のコードでは、オブジェクトのオーバーレイアイテムをonProgressUpdateメソッドに渡そうとしています。 itemizedOverlay.addOverlayが配列を期待していないというコンパイラエラーが発生します。なぜオーバーレイアイテムが配列として渡されているのか混乱しています(オーバーレイアイテム[])。誰も助けることができますか?問題を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