我有一个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
没有改变。
答案 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();