У меня есть живые обои на рынке прямо сейчас с множеством настраиваемых опций. Недавно мой друг попросил меня добавить кнопку сброса, чтобы вернуть их все к значениям по умолчанию. Я добавил кнопку на экран настроек через XML, но не могу очистить настройки. Вот код, который я использую:
getPreferenceManager().findPreference("default").setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
AlertDialog alertDialog = new AlertDialog.Builder(mContext).create();
alertDialog.setMessage("Are you sure you want to reset all settings to default?");
alertDialog.setCancelable(true);
alertDialog.setButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
} });
alertDialog.setButton2("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
} });
alertDialog.show();
return false;
}
});
AlertDialog всплывает, щелкая «Нет», отменяет окно, но нажатие «Да» закрывает окно без очистки настроек. Что я должен изменить, чтобы очистить их? Спасибо, ребята!
РЕДАКТИРОВАТЬ: небольшое обновление, добавив
Log.d("test" , settings.getAll().toString());
До и после очистки / фиксации возвращает {} оба раза. Поэтому я думаю, что храню свои предпочтения каким-то странным образом или что-то в этом роде