2017-09-13 30 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; 
     } 

    })); 
相关问题