2011-04-06 140 views
0

當點擊一個指針時,我有一個帶指針的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」,我知道我不能直接訪問它,但我不知道如何將它傳遞英寸 任何人都可以指出我正確的方向嗎?

貝克斯

+0

你在哪裏給item.mKey分配了什麼? – MByD 2011-04-06 12:52:31

+0

它是在newoverlayitem中,它是item.ID – Bex 2011-04-06 13:03:15

+0

你能告訴我們'newoverlayitem'構造函數嗎? – MByD 2011-04-06 13:19:35

回答

0

只是爲了給我做到了。我添加了一個全局變量來使用,而不是通過在ID添加一個答案。

0

假設你MKEY是一個字符串,嘗試了這一點。 dialog.setPositiveButton之前寫final String key = item.mkey;然後在onClick方法​​

+0

我試過了,但把它改成了int,但是無論如何它不能識別變量鍵!任何其他想法? – Bex 2011-04-06 13:02:47

+0

是否將'item'變量轉換爲'newoverlayitem'類型? – pankajagarwal 2011-04-06 13:39:26

+0

該項目爲空,我已經將它設置爲全局變量,因爲無法想到另一種方式..不是最好的,但工程 – Bex 2011-04-08 11:02:54

相關問題