2012-03-25 55 views
0

在我MapActivity,當你在一個ItemizedOverlay挖掘,它顯示在一個TextView的 標題 片段/消息話題和各另一ItemizedOverlay被點擊或輕敲的Android中的onTap意向陣列

我已經創建了一個ImageButton的時間變化一個手機上的圖像,我正試圖調用一個Array Intent 因此,基本上,當用戶點擊Overlay1,然後決定點擊電話圖像按鈕時,存儲在intent中的號碼將變爲Overlay1的號碼,所以他們可以調用覆蓋1 ,如果他們點擊覆蓋2,那麼數字會相應改變等

我的代碼如下:

List<Overlay> mapOverlays; 
List<Intent> mapIntents; 
NewItemizedOverlay itemizedOverlay; 
Intent intentCall; 

GeoPoint point = new GeoPoint((int)(51.555890943494276*1E6), (int)(-0.39989858865737915*1E6)); 
    OverlayItem overlayitem = new OverlayItem(point, "Greenwood Veterinary" , "57 Station Approach, South Ruislip, Ruislip, Middlesex, HA4 6SL, 020 8845 8144"); 
    itemizedOverlay.addOverlay(overlayitem); 
    Intent vet1 = new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel:020 8845 8144")); // i created this in a similar fashion to the itemizedOverlay 
    intentCall.?(vet1); // i wanted to try and do the same thing with the addOverlay but i cant seem to find the correct method of doing this 

GeoPoint point2 = new GeoPoint((int)(51.598707*1E6), (int)(-0.393416*1E6)); 
    OverlayItem overlayitem2 = new OverlayItem(point2, "MediVet Pinner" , "2A Pinner Green, Pinner, Middlesex, HA5 2AA, 020 8866 0727"); 
    itemizedOverlay.addOverlay(overlayitem2); 
    Intent vet2 = new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel:020 8866 0727")); 

ItemizedOverlay:

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
private ArrayList<Intent> cIntents = new ArrayList<Intent>(); 
Context mContext; 

    public NewItemizedOverlay(Drawable defaultMarker) { 
      super(boundCenterBottom(defaultMarker)); 
    } 

    public NewItemizedOverlay(Drawable defaultMarker, Context context) 
    { 
      super(boundCenterBottom(defaultMarker)); 
      mContext = context; 
    } 

    public void addOverlay(OverlayItem overlay) 
    { 
      mOverlays.add(overlay); 
      populate(); 
    } 

    public void addOverlay(OverlayItem overlay, Intent intent) 
    { 
      mOverlays.add(overlay); 
      cIntents.add(intent); 
      populate(); 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
      // TODO Auto-generated method stub 
      return mOverlays.get(i); 
    } 

    protected Intent createCall(int c) 
    { 
      return cIntents.get(c); 
    } 

    @Override 
    public int size() { 
      // TODO Auto-generated method stub 
      return mOverlays.size(); 
    } 

    public int callsize() 
    { 
      return cIntents.size(); 
    } 

    @Override 
    protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    Intent callItem = cIntents.get(index); 


    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
    dialog.setIcon(android.R.drawable.ic_dialog_info); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

      } 
    }); 
    dialog.setNeutralButton("Call", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 
          VetNumber. //Not sure how to exactly call the Intent 
        } 
      }); 
    dialog.show(); 
    return true; 
    } 

} 

如果有人可以幫助,我將非常感激

謝謝

回答

1

也許是太晚了你,但如果你知道你在哪裏,你可以開始一個新的意圖。如果您正在使用MapActivity和ItemizedOverlay,則可以在LocalizacionItemizedOverlay中獲取上下文。

Context mContext; 
public LocalizacionItemizedOverlay(Drawable defaultMarker, Context context) { 
    super(boundCenterBottom(defaultMarker)); 
    mContext=context; 
} 

然後在功能的onTap你可以寫一些類似於:

dialog.setPositiveButton("Ver", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int id) { 
     Intent nextScreen = new Intent(mContext, YourActivity.class); //define the intent 
    nextScreen.putExtra("definicionURL",definicion.url); //pass variables 
    mContext.startActivity(nextScreen); //launch the intent 
    } 
}); 

這一直是我的第一篇文章中stackoverflow.com和我想說的東西,所有的人都在這裏張貼的解決方案:感謝你非常。