处理叠加项目的快速连续点击

时间:2011-12-21 06:22:28

标签: android

我创建了一个地图应用程序,以便在地图上显示附近的位置。当用户点击地图上的图钉时,会弹出一个警告对话框,要求用户显示路线。我的问题是当点击图钉时很多次快速连续消息框出现不止一次。我不希望该消息出现多次。任何人都可以帮助我吗?我的代码是:

    protected boolean onTap(int pos) {

    final ProgressDialog myDialog = ProgressDialog.show(LocationBasedServicesV1.this, "", "Please Wait...");
         OverlayItem item = items.get(pos);
          Thread backgroundThread = new Thread(new Runnable(){
        @Override
        public void run() {
             runOnUiThread(new Runnable() {                    
             @Override
              public void run() {
                 AlertDialog.Builder dialog = new AlertDialog.Builder(  LocationBasedServicesV1.this);
                dialog.setTitle(listDetailsVO.getName());
                dialog.setMessage("Address: "+destination+"\nPhone: "+finalPhone+"\nEmail Id: "+finalEmail+"\nDistance: "+finalDistance+unit);
                dialog.setPositiveButton("Show Route", new DialogInterface.OnClickListener(){
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    try {
                        Intent i = new Intent(LocationBasedServicesV1.this, ShowRouteActivity.class);
                        i.putExtra("destination", destination);
                        i.putExtra("source", currentAddress);
                        startActivity(i);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
            });
            dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
           });
         dialog.show();
         }
        }); 
        myDialog.dismiss();
        }
        });
        backgroundThread.start();
    }

1 个答案:

答案 0 :(得分:1)

检查针的位置假设你有5针然后用户点击3位针再次用户点击相同的针然后你在onTap()方法中得到相同的位置然后什么都不做,否则只是解除最后一次打开(如果您需要)并创建新对话框/使用现有对话框并在该位置显示