Android ItemizedOverlay onTap информацию на TextView - PullRequest
0 голосов
/ 19 марта 2012

У меня в основном есть набор геопоинтов, и они у меня как 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;
}

}

1 Ответ

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

Это хорошо, я понял это

По сути, как только я создал TextView в main.xml

Все, что мне нужно было сделать, это ссылаться на TextView, находя представление по id

, а затем просто:

viewName.setText(item.getTitle());

Simples ^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...