Estoy trabajando para un cliente una aplicacion en Android con Google Maps.
Uno de los modulos, debera de mostrar un mapa, con un marker, al hacerle clic al marker, en la parte superior del mapa, debera de aparecer modificando unos campos(en este codigo que pondre, solo es un textview) el titulo e informacion extra.
Para manejar los eventos al hacer clic usare una clase que ya viene en varios tutoriales, MyItemizedOverlay , y otra clase donde se va a mostrar el mapa, mapatest:
 
 
-------------------------------------MAPATEST-------------------------------------
 
package com.func.app;
 
import java.util.List;
 
import com.func.app.R;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
 
 
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.EditText;
import android.widget.TextView;
 
 
public class mapatest extends MapActivity {
    private MapView mapView;
    public static List<Overlay> mapOverlays;
    GeoPoint point,point2;
    OverlayItem overlayitem,overlayitem1;
    public TextView titulo;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapa);
        titulo=(TextView)findViewById(R.id.tituloanuncio);
        //titulo.setText("a ver");
        //comunica();
        mapView = (MapView) findViewById(R.id.map_view);
         //sets the zoom to see the location closer
        mapView.getController().setZoom(12);
 
        //this will let you to zoom in or out using the controllers
        mapView.setBuiltInZoomControls(true);
 
        List< Overlay > mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.googlei  con);
 
        MyItemizedOverlay itemizedoverlay = new MyItemizedOverlay(drawable, this);
 
        GeoPoint point = new GeoPoint(46066940, 23570000);
       //this will show you the map at the exact location you want (if you not set this you will see the map somewhere in America)
        mapView.getController().setCenter(point);
        OverlayItem overlayitem = new OverlayItem(point, "Title for dialog", "Alba Iulia City From Romania");
 
        GeoPoint point2 = new GeoPoint(35410000, 139460000);
        OverlayItem overlayitem2 = new OverlayItem(point2, "Title for dialog", "Japan");
 
        itemizedoverlay.addOverlay(overlayitem);
        itemizedoverlay.addOverlay(overlayitem2);        
        mapOverlays.add(itemizedoverlay);
 
    }
 
    @Override
    protected boolean isRouteDisplayed() {
          return false;
    }
 
    void comunica(){
            this.titulo.setText("titulos");
 
        System.out.println("Comunicando");
    }
 
 
}
-------------------------------------------MyItemizedOverlay---------------------------------------
 
package com.func.app;
 
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
 
import java.util.ArrayList;
 
/**
 * Description
 *
 * @author : kazy
 *         Date: 3/23/12
 */
public class MyItemizedOverlay extends ItemizedOverlay {
    private ArrayList< OverlayItem > mOverlays = new ArrayList< OverlayItem >();
    Context mContext;
 
 
 
    public MyItemizedOverlay(Drawable marker) {
        super(boundCenterBottom(marker));
    }
 
    public MyItemizedOverlay(Drawable marker, Context context) {
        super(boundCenterBottom(marker));
        mContext = context;
    }
 
    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }
 
    @Override
    protected OverlayItem createItem(int i) {
        return mOverlays.get(i);
    }
 
    @Override
    public int size() {
        return mOverlays.size();
    }
 
    @Override
    protected boolean onTap(int i) {      
        mapatest ob=new mapatest();//Prueba nivel noob
        ob.comunica();//Pruebas nivel noob
        return true;
    }
}
 
------------------------------------------------------------------------------------
Lo que yo tenia pensado era crear un metodo en mapatest comunica(como viene en el codigo),donde en ese codigo se modifica por settext, y en el metodo onTap de MyItemizedOverlay llamarlo para que al hacer clic se muestre la informacion en un textview, para probar hice un objeto de la clase mapatest y lo ejecute en onTap, obviamente no funciona, por lo que vengo aca con la duda ¿como puedo modificar desde onTap el textview de mapatest? Pense en esa solucion, pero si no es en onTap, corrijanme por favor,les agradezco a todos por leer el mensaje..
Saludos 
  
 

