Hi,

I have a checkbox preference which, when set for the first time, may
trigger a long-running operation.  I want to get the user's explicit
consent before starting this operation.  However, if the user hits
cancel, then the preference should remain unchecked.

I'm using a preference activity and register an onPreferenceChanged()
handler for the checkbox preference in question, which shows an alert
dialog (and returns true, so the preference *will* be set before the
dialog pops up).

I tried doing something like this in the AlertDialog that asks for
user confirmation, to revert that preference change if he clicks
cancel:

[....]
.setNegativeButton(R.string.cancel_button, new
DialogInterface.OnClickListener() {
        @Override
        public void onClick (DialogInterface dialog, int which) {
                Editor e = getPreferenceScreen().getEditor();
                e.putBoolean("foo_enable", false);
                e.commit();
                SettingsActivity.this.onContentChanged();
        }
})

but it doesn't quite have the desired effect: the "foo_enabled"
preference remains checked.

AFAIK there are no blocking modal dialogs in Android.  Should I
perhaps be using something other than onPreferenceChanged() for this?
Any suggestions would be appreciated!

Thanks,
Spiros
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to