I found that the preferences XML will break very easily if you store some
Strings containing 'special' characters. I am not sure what exactly those
are, but when I stored things like

     putString("someurl", "http://xyz/?a=b&c=d";)

the preference file becomes empty next time I try to open it.

My solution is to quote all Strings that I put into the SharedPreferences.
After that my problems seems to go away.

I couldn't find a Base64 encoder in the Android API, so I wrote a
quick-and-dirty PrefQuote class:

http://code.google.com/p/nubi/source/browse/trunk/android/nubinews/src/com/nubinews/reader/PrefQuote.java

     putString("someurl", PrefQuote.quote("http://xyz/?a=b";))

Hope this helps

On Thu, Apr 23, 2009 at 9:56 AM, bo <bost...@gmail.com> wrote:

>
> I do SharedPreferences.Editor.commit() in couple of places. 1.
> Immediately after setting the preference. 2. in Activity#onStop.
> Nevertheless when I restart the app the preferences are gone. Any more
> ideas? I do create prefs programmaticaly after harvesting these from
> user (username/pwd)
>
> On Apr 21, 11:00 pm, Chander Pechetty <cspeche...@gmail.com> wrote:
> > Sorry, I was referring to the settings created using
> > PreferenceActivity screen using xml. Your actual preference values do
> > not help much in diagnosing the issue.
> >
> > Example snippet from loadingpreferencesfrom xml:
> >                     <CheckBoxPreference android:key="pref1"
> >                         android:title="pref1"
> >                         android:summaryOn="SummaryOn"
> >                         android:summaryOff="SummaryOff"
> >                         android:defaultValue="true"
> >                         android:persistent="true"/>
> >
> > Forpreferencescreated programatically, you can use
> > Preference.setPersistent(true);
> >
> > If no Settings screen is present, and everything is through your
> > program, then batch SharedPreferences.Editor.commit()'s should be
> > fine.
> >
> > I had a similar problem as yours, but have not faced it again so far.
> > Other than the known issue mentioned in the previous post, I don't
> > know what else the problem could be unless you post your code
> > perhaps...
> >
>

--~--~---------~--~----~------------~-------~--~----~
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