Hopefully last commit for this townPicker.. data is now saved , there is
a known bug in the API

This problem is still present on the 17 API level.

It is caused because the getStringSet() method of the SharedPreferences
class doesn't return a copy of the Set object: it returns the entire
object and, when you add new elements to it, the commitToMemory method
of the SharedPrefencesImpl.EditorImpl class see that the existing value
is equal to the previous one stored.

The ways to workaround this issue is to make a copy of the Set returned
by SharedPreferences.getStringSet or force the write to memory using
other preference that always change (for example, a property that stores
the size of the set each time)