Android onTap Intent Array - PullRequest
       17

Android onTap Intent Array

0 голосов
/ 26 марта 2012

На моем MapActivity, когда вы нажимаете на ItemizedOverlay, он отображает заглавие Фрагмент / сообщение в TextView и изменяется каждый раз, когда нажимается или нажимается другой ItemizedOverlay

Я создал ImageButton с изображением телефона и пытаюсь вызвать Array Intent для него Таким образом, в основном, когда пользователи нажимают на Overlay1, а затем решают нажать на кнопку Phone Image номер, сохраненный в намерении, меняется на номер 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 Ответ

1 голос
/ 26 марта 2013

Может быть, это слишком поздно для вас, но вы можете начать новое намерение, если вы знаете контекст, где вы находитесь.Если вы работаете с 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, и я хочу сказать что-то всем, кто публикует решения здесь: большое спасибо.

...