My application is somewhat complex and has lots of settable preferences. Fortunately for the user, there are sensible defaults that I can pre-configure. The SharedPreferences infrastructure includes defaults in preferences.xml, which I have set accordingly. The trouble is that if the user has never changed a particular preference, then SharedPreferences.contains(key) returns false and SharedPreferences.getXXX(key,default) returns the default field. This creates a code management issue for defaults. The default values need to be stored in two different places and kept in sync.
Ideally, the SharedPreferences infrastructure could be told to read in the entire preferences.xml file so the SharedPreferences database is loaded with all the initial values. But I haven't found any way to do that. A key-value pair doesn't come into existence in the database until the value is changed in the UI. Second best would be to use the XMLReader to grab the default values, something like this: foo = SharedPreferences.getXXX(key,myDefaultReader(key)); Third best would be to store the defaults in their own file and manage SharedPreferences files and defaults files as pairs. Then on application startup the defaults file would be read and the values propagated into the SharedPreferences database. This is such a generic problem that I'm hoping someone has already solved it and I can get something off the shelf. Any suggestions? -- You received this message because you are subscribed to the Google Groups "Android Beginners" group. ATTENTION: Android-Beginners will be permanently disabled on August 9 2010. For more information about this change, please read [http://goo.gl/xkfl] or visit the Group home page. Try asking and tagging your question on Stack Overflow at http://stackoverflow.com/questions/tagged/android To unsubscribe from this group, send email to android-beginners+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en