check code below: i have used simple alertDialog you can use custom or whatever you want.


AbstractMapActivity.java
public class testclassmaps extends AbstractMapActivity {
private GoogleMap map;
private TextView text;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
if (readyToGo()) {
setContentView(R.layout.showmaps);
text = (TextView) findViewById(R.id.editText1);
getSupportActionBar().setHomeButtonEnabled(true);
SupportMapFragment mapFrag = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
map = mapFrag.getMap();
// map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
addMarker(map, 23.0333, 72.6167, "Ahmedabad", "");
addMarker(map, 22.3000, 73.1900, "Baroda", "");
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
// TODO Auto-generated method stub
map.addMarker(new MarkerOptions().position(point).title(
point.toString()));
Log.e("TAP MAP---->", "" + point);
text.setText("" + point);
}
});
}
map.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker arg0) {
// TODO Auto-generated method stub
if (arg0.getTitle().equalsIgnoreCase("Ahmedabad")) {
new AlertDialog.Builder(testclassmaps.this)
.setTitle("Ahmedabad")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).show();
}
if (arg0.getTitle().equalsIgnoreCase("Baroda")) {
new AlertDialog.Builder(testclassmaps.this)
.setTitle("Baroda")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
}).show();
}
return false;
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
}
private void addMarker(GoogleMap map, double lat, double lon,
String string, String string2) {
map.addMarker(new MarkerOptions().position(new LatLng(lat, lon))
.title(string).snippet(string2));
}
}
to hide info window use marker.hideInfoWindow();
inside marker click
if you don't want to use alertDialog then you can use custom layout for info window below way:
map.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
/*ContextThemeWrapper cw = new ContextThemeWrapper(
getApplicationContext(), R.style.Transparent);*/
// AlertDialog.Builder b = new AlertDialog.Builder(cw);
LayoutInflater inflater = (LayoutInflater) getApplicationContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater
.inflate(R.layout.custom_infowindow, null);
return layout;
}
@Override
public View getInfoContents(Marker arg0) {
return null;
}
});