2

如果未启用,我有一个对话框提示用户启用 gps 位置。

打开设置后,用户启用 gps,并从位置设置屏幕按后退按钮,他们返回应用程序,但对话框仍然可见。

这是单击按钮的代码。

    // On pressing Settings button
    alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,int which) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            mContext.startActivity(intent);
            dialog.dismiss();
        }

    });

我的问题是为什么 dialog.dismiss() 不关闭对话框,我也尝试了 dialog.cancel() 具有相同的结果。打开设置屏幕后我应该做些什么吗?

谢谢,

4

1 回答 1

2

我的代码中有这段代码Activity

private void showLocationDisabledInfo() {
    final Context c = this;
    AlertDialog.Builder builder = new AlertDialog.Builder(c);
    builder.setMessage("TEST");
    builder.setPositiveButton("OK", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            c.startActivity(intent);
        }
    });
    builder.setNeutralButton(R.string.cancel, null);
    builder.create().show();
}

无论我点击什么按钮,它都会自动关闭对话框。它来自我的应用程序,并且在具有 API8和的设备上10以及运行 API 的模拟器上进行了测试17。我们的代码之间的唯一区别(可能)是mContext. 请提供负责设置对话框和您所描述行为的环境的完整代码。

于 2012-12-23T02:03:40.180 回答