You can use the graphicsLayer.getGraphic(...) method to get the graphic you just tapped on, then show the info template contents in a callout (MapView.getCallout())
map.setOnSingleTapListener(new OnSingleTapListener() {
@Override
public void onSingleTap(float x, float y) {
gl.addGraphic(new Graphic(map.toMapPoint(x,y), new SimpleMarkerSymbol(Color.RED, 15, STYLE.CIRCLE)));
int[] ids = gl.getGraphicIDs(x, y, 15, 1);
InfoTemplate infoTemp = new InfoTemplate();
infoTemp.setContentTemplate("Where is the data ${type}");
try {
HashMap<String, Object> attrs = new HashMap<String, Object>();
attrs.put("type", "Point");
Graphic gg = new Graphic(map.toMapPoint(x,y),new SimpleMarkerSymbol(Color.YELLOW, 25, STYLE.DIAMOND),attrs, infoTemp);
gl.addGraphic(gg);
Log.d(TAG,""+gg.getInfoTemplate().getContent(gg));
Callout callout = map.getCallout();
callout.setContent(createContent(ContactInfoTemplate.this, gl.getGraphic(ids[0]).getInfoTemplate(),gg));
callout.show(map.toMapPoint(x,y));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
public View createContent(Context context, InfoTemplate info, Graphic gg)
{
LinearLayout layout = new LinearLayout(context);
TextView txt = new TextView(context);
txt.setText("Content: "+gg.getInfoTemplate().getContent(gg));
TextView txtAttr = new TextView(context);
txt.setText("Attr: "+(String)gg.getAttributeValue("type"));
layout.addView(txt);
layout.addView(txtAttr);
return layout;
}