将ID传递给AlertDialog点击事件
当点击一个指针时,我有一个带指针的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”,我知道我不能直接访问它,但我不知道如何将它传递英寸 任何人都可以指出我正确的方向吗?
贝克斯
只是为了给我做到了。我添加了一个全局变量来使用,而不是通过在ID添加一个答案。
假设你MKEY是一个字符串,尝试了这一点。 dialog.setPositiveButton
之前写final String key = item.mkey;
然后在onClick
方法
我试过了,但把它改成了int,但是无论如何它不能识别变量键!任何其他想法? – Bex 2011-04-06 13:02:47
是否将'item'变量转换为'newoverlayitem'类型? – pankajagarwal 2011-04-06 13:39:26
该项目为空,我已经将它设置为全局变量,因为无法想到另一种方式..不是最好的,但工程 – Bex 2011-04-08 11:02:54
你在哪里给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