2011-12-21 5 views
0

マップアプリケーションを作成してマップの近くの場所に表示します。ユーザーがマップ上のピンをクリックすると、ルートを表示するように警告ダイアログボックスが表示されます。そのピンが何度も何度もクリックされると、メッセージボックスは複数回表示されます。そのメッセージが複数回表示されることは望ましくありません。私のコードは次のとおりです。オーバーレイアイテムの早送りタップの処理

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

はピンのための位置を確認してくださいあなたは5ピンがあると、同じピン上の3ポジションピン上のユーザーのクリックを再度ユーザーのクリックが、その後、あなたはONTAP()メソッドに同じ位置を得た後、ただ何もしませんさもなければ最後に開いた(必要な場合)を終了し、新しいダイアログを作成する/既存のダイアログを使用してその位置に表示する

+0

このアイデアは働いています...ありがとう – Nishant

関連する問題