Android AlertDialog已经显示?

时间:2015-03-27 08:41:53

标签: android dialog alert

如何阻止AlertDialog显示是否已显示?我到处搜索并使用不同的解决方案来为我的项目工作,但是我有一个每5秒运行一次的循环并调用AlertDialog方法(showSettingsAlert())并且每次都有一个新的{{1}堆叠在前一个上。

我希望方法在开始时检查它是否已经显示对话框。

这是我的代码:

AlertDialog

1 个答案:

答案 0 :(得分:1)

这样做,

//check dialog open method
public boolean checkDialogOpen()
    {
        if (Dialog!= null && Dialog.isShowing())
            return true;
        else
            return false;
    }

您的更新代码,

public AlertDialog Dialog;

public void showSettingsAlert() {

  if (checkDialogOpen()) 
    return;

    AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
    alertDialog.setTitle("GPS Disabled");

    alertDialog.setMessage("Do you want to go to location settings menu?");

    alertDialog.setPositiveButton("Location Settings", new DialogInterface.OnClickListener() {

      @
      Override
      public void onClick(DialogInterface dialog, int which) {
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        context.startActivity(intent);
      }
    });

    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

      @
      Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.cancel();
      }
    });
    Dialog = alertDialog.create();
    Dialog.show();
  }
}