0

alertDialogエミュレーターまたはデバイスでアプリケーションを強制終了したとき、およびそのデバイスまたはエミュレーターでアプリケーションに移動してアプリケーションを再度起動したときに、別の問題が発生しましたalertDialog。少し前に、このリンクでこれと同様の問題がありましたアラートダイアログの共有設定により、アプリケーションが応答しなくなり、すべての問題が完全に解決されたと思いました。誰かがこの問題について私を助けてくれますか。

    final SharedPreferences settings = getSharedPreferences("pref_name", 0);
    ("installed", false);

        final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);

        alertDialog.setTitle("Title");
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.setAdapter(new MyAdapter(), null);

        alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                SharedPreferences.Editor editor = settings.edit();
                editor.putBoolean("installed", true);
                editor.commit();

            }
        });

        alertDialog.show();

さらに詳しく説明する必要がある場合はお知らせください

4

1 に答える 1

0
final SharedPreferences settings = getSharedPreferences("pref_name", 0);
boolean dialogAlreadyShown = settings.getBoolean("installed", false);

if (dialogAlreadyShown == false) {
   showTheDialogYouWannaShow();
   settings.edit().putBoolean("installed", true).commit();
}

このように、次にこのコードを実行すると、ダイアログは表示されません... ダイアログの onClick で設定を保存することもできますが、ユーザーがダイアログのボタンをクリックしないと、ダイアログはユーザーがボタンを押すまで、複数回表示される可能性があります。要件によっては、これも問題ありません。

注: showTheDialogYouWannaShow () では、質問で既に提示されている警告ダイアログを作成するコードを配置していると仮定します。

于 2013-09-29T12:27:09.067 に答える