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 に答える