2012-03-25 2 views
0

На моем MapActivity, когда вы нажимаете на ItemizedOverlay, он отображает Названия Snippet/Messsage в TextView и изменяется каждый раз, другая ItemizedOverlay щелчка или повернутогоAndroid OnTap Намерения Массив

Я создал ImageButton с образ телефона на нем, и я пытаюсь вызвать в него намерение массива. Итак, в основном, когда пользователи нажимают на Overlay1, а затем решают нажать на кнопку «Изображение телефона» номер, сохраненный в намерении, изменяет номер Overlay1, и поэтому они может вызвать Overlay 1 , и если они нажмут на Overlay 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 и я хочу сказать кое-что для всех людей, отправляющих решения здесь: спасибо вы очень.

Смежные вопросы