我创建了一个地图应用程序,以便在地图上显示附近的位置。当用户点击地图上的图钉时,会弹出一个警告对话框,要求用户显示路线。我的问题是当点击图钉时很多次快速连续消息框出现不止一次。我不希望该消息出现多次。任何人都可以帮助我吗?我的代码是:
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();
}
答案 0 :(得分:1)
检查针的位置假设你有5针然后用户点击3位针再次用户点击相同的针然后你在onTap()方法中得到相同的位置然后什么都不做,否则只是解除最后一次打开(如果您需要)并创建新对话框/使用现有对话框并在该位置显示