當點擊一個指針時,我有一個帶指針的mapview我顯示一個alertdialog。 在這個對話框中我有一些文字和兩個按鈕,一個正面和負面。 點擊肯定後,我想根據點擊的指針的ID打開一個新的活動。將ID傳遞給AlertDialog點擊事件
我是Android和java的新手,我無法將ID傳遞給click事件。
到目前爲止我的代碼..
List<myItemType> myItems= //code to get list of items
final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(
);
for (myItemType item : myItems) {
Double lat = Double.parseDouble(item .Lat);
Double lng = Double.parseDouble(item .Long);
items.add(new OverlayItem(item .ID, item .Name, item .Description
.substring(0, 20) + "...", new GeoPoint(lat, lng)));
}
ItemizedOverlay<OverlayItem> myOverLay =
new ItemizedOverlay<OverlayItem>(
this, items, this.getResources().getDrawable(R.drawable.standard_pointer), new Point(5, 5),
HotspotPlace.BOTTOM_CENTER, new ItemizedOverlay.OnItemGestureListener<OverlayItem>()
{
@Override
public boolean onItemSingleTapUp(final int index,final OverlayItem item) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MapActivity.this);
dialog.setTitle(item.mTitle);
dialog.setMessage(item.mDescription);
dialog.setPositiveButton(R.string.View,new DialogInterface.OnClickListener()
{
//********************CLICK EVENT HERE
@Override
public void onClick(DialogInterface dialog,int which) {
Intent i = new Intent(MapActivity.this,POI.class);
i.putExtra("Id", item.mKey); //<------ item.mKey is null!
startActivity(i);
}
});
dialog.setNegativeButton(R.string.Cancel, null);
dialog.create();
dialog.show();
return true;
}
ID被存儲在「item.mKey」,我知道我不能直接訪問它,但我不知道如何將它傳遞英寸 任何人都可以指出我正確的方向嗎?
貝克斯
你在哪裏給item.mKey分配了什麼? – MByD 2011-04-06 12:52:31
它是在newoverlayitem中,它是item.ID – Bex 2011-04-06 13:03:15
你能告訴我們'newoverlayitem'構造函數嗎? – MByD 2011-04-06 13:19:35