У меня в основном есть набор геопоинтов, и они у меня как ItemizedOverlays
Обычно, когда вы нажимаете на них
Значок,
заглавие
Сообщение (фрагмент) Появляется в форме окна AlertDialog
Я хочу изменить это, и когда выполняется функция onTap, я хочу, чтобы
Значок
заглавие
Сообщение, отображаемое в TextView только поверх карты
Я предполагаю, что упускаю что-то очень простое, но если кто-то может помочь, я был бы очень благодарен
XML:
<TextView
android:id="@+id/locationInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#000000"
android:text="Choose a Flag!" />
MainActivity:
GeoPoint point2 = new GeoPoint((int)(51.598707*1E6), (int)(-0.393416*1E6));
OverlayItem overlayitem2 = new OverlayItem(point2, "Location 2" , "2A Pinner");
itemizedOverlay.addOverlay(overlayitem2);
ItemizedOverlay:
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.TextView;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
@SuppressWarnings("rawtypes")
public class NewItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
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();
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
mOverlays.get(index).getTitle(); // i was messing around with this
mOverlays.get(index).getSnippet(); // and this lol
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.show();
return true;
}
}