2017-09-13 25 views
1

我需要在我的地圖中顯示拖動事件的吐司,下面是我的代碼,其中我只獲得「Drag Started」消息,當我執行拖動結束事件時。我怎樣才能做到這一點?如何在我的自定義osmdroid映射上設置拖動開始和結束偵聽器?

public void onDragListener() { 
    osm.setMapListener(new DelayedMapListener(new MapListener() { 

     @Override 
     public boolean onScroll(ScrollEvent paramScrollEvent) { 
      // public boolean onDrag(boolean b) { 
      int drag = DragEvent.ACTION_DRAG_STARTED; 
      if (drag == 1) { 
       Toast.makeText(getBaseContext(), "Drag Started", 
         Toast.LENGTH_LONG).show(); 

      } 
      int drag1 = DragEvent.ACTION_DRAG_ENDED; 
      if (drag1 == 1) { 
       Toast.makeText(getBaseContext(), "Drag Stopped", 
         Toast.LENGTH_LONG).show(); 
      } 

      return true; 
     } 

    })); 
} 

任何幫助將不勝感激,謝謝

+0

我也有同樣的問題,找工作的實施 – Saneth

回答

0

基本的邏輯不正確,將只顯示將開始敬酒。這是你如何解決敬酒。

在類級別定義變量。

private Context ctx; 

然後分配值

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.select_location); 


    ctx = getApplicationContext(); 

然後在你的代碼中使用它

map.setMapListener(new DelayedMapListener(new MapListener() { 

     @Override 
     public boolean onScroll(ScrollEvent paramScrollEvent) { 
      // public boolean onDrag(boolean b) { 
      IGeoPoint ij = map.getMapCenter(); 
      Double lat = ij.getLatitude(); 
      Double lon = ij.getLongitude(); 

      Toast.makeText(ctx, lat+","+lon, Toast.LENGTH_SHORT).show(); 


      return true; 
     } 


     @Override 
     public boolean onZoom(ZoomEvent event) { 
      return false; 
     } 

    })); 
相關問題