0

以下是我的 AlertDialog 代码,

AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);
alertDialog.setTitle("GPS settings");
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog,int which) {
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        mContext.startActivity(intent);
       }
 });

alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
       dialog.cancel();
       }
   });
alertDialog.show();

@Override
protected void onPause() {
    super.onPause();
 // I want dialog to be dismissed here

}

它工作正常,但我想要的是关闭 Activity 的 onPause 方法中的对话框,
我该如何实现?

4

3 回答 3

1

使用这个onPause

alertDialogforGPS.dismiss();

编辑:

AlertDialog.Builder builder;

builder = new AlertDialog.Builder(WelcomeActivity.this).setTitle("Title")
.setMessage("Message")
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int which) {
        //your code
    }
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        dialog.cancel();
    }
});
AlertDialog dialog = builder.create();
dialog.show();

而在onPause

dialog.dismiss();
于 2014-11-21T06:34:25.940 回答
0

试试这个..

声明全局变量..

AlertDialog.Builder alertDialog;

在需要时定义和访问它。

alertDialog = new AlertDialog.Builder(mContext);
alertDialog.setTitle("GPS settings");
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog,int which) {
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
       dialog.dismiss(); // NOTE : dismiss dialog before moving to other activity.. it will prevent causing exception... 
        mContext.startActivity(intent);
       }
 });

alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
       dialog.dismiss();
       }
   });

在其他方法中访问变量..

@Override
protected void onPause(){
    //checking for null variable
    if(alertDialog != null)
        alertDialog.dismiss();
    }
}
于 2014-11-21T06:36:09.047 回答
0

首先,你必须让AlertDialog.Builder alertDialog你的班级成员。像:

private AlertDialog.Builder mAlertDialog;

然后,在您定义警报对话框的地方,您使用此成员:

mAlertDialog = new AlertDialog.Builder(mContext);
mAlertDialog.setTitle("GPS settings");
mAlertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
mAlertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int which) {
        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        mContext.startActivity(intent);
    }
});

mAlertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        dialog.cancel();
    }
});
mAlertDialog.show();

然后在onPause()方法中,您可以关闭对话框。

@Override
protected void onPause() {
    if (mAlertDialog != null) {
        mAlertDialog.dismiss();
    }
    super.onPause();
}
于 2014-11-21T09:30:13.317 回答