AlertDialog没有关闭

时间:2016-02-02 16:21:07

标签: android sharedpreferences alertdialog android-alertdialog

我有一个AlertDialog,其中positiveButton click应该执行sharedPreferences字符串集更改,但是,在按下positiveButton后,对话框没有被关闭存在问题。更重要的是,每次点击按钮后,它会再创建一个对话框,以便它们累积......

AlertDialog.Builder builder = new AlertDialog.Builder(activity);
            builder.setTitle(android.R.string.dialog_alert_title);
            builder.setMessage("...");
            builder.setCancelable(false);
            builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Set<String> myNewSet = individualScheduleDays;//Default shared preference string set
                    myNewSet.remove(Integer.toString(scheduleID));
                    editor.remove(DAYS_WITH_INDIVIDUAL_SCHEDULE);
                    editor.commit();
                    editor.putStringSet(DAYS_WITH_INDIVIDUAL_SCHEDULE, myNewSet);
                    editor.commit();

                }
            });
            AlertDialog alert = builder.create();
            alert.show();

我发现如果我只调用editor.commit(),那么对话就可以了,但sharedPreference没有改变。

2 个答案:

答案 0 :(得分:3)

对话不能自行解雇。

试试这个:

//editor.remove(DAYS_WITH_INDIVIDUAL_SCHEDULE); // not needed
//editor.commit();     // not needed
editor.putStringSet(DAYS_WITH_INDIVIDUAL_SCHEDULE, myNewSet);
editor.commit();
dialog.dismiss();

答案 1 :(得分:1)

在positiveButton的onClick函数中你必须使用

editor.dismiss();