Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2013-10-25 Thread mattcoz
I had the same problem and fixed it by persisting the value in the 
onSetInitialValue method.  The javadoc says: If restorePersistedValue is 
false, you should set the Preference value to defaultValue that is given 
(and possibly store to SharedPreferences if 
shouldPersist()http://developer.android.com/reference/android/preference/Preference.html#shouldPersist%28%29is
 true).  It's that second part that is required.

On Friday, September 21, 2012 11:50:28 AM UTC-5, Gene Wildhart wrote:

 Your solution works perfectly for me on Gingerbread (Android 2.3.7) and 
 below.  However, when trying on ICS (4.0+) or newer, neither the *
 onSetInitialValue* or the *onGetDefaultValue* functions are ever called. 
  Can anyone explain why the behavior changed in ICS?

 On Friday, July 27, 2012 1:41:50 AM UTC-7, Jens wrote:

 Finally, I've found a solution to this problem!

 The official documentation for the preferences activity has just been 
 updated.
 Check out the paragraph about Building a Custom Preference
 http://developer.android.com/guide/topics/ui/settings.html#Custom

 You have to implemenet both of the following methods the way it is 
 described.
 Now *PreferenceManager.setDefaultValues()* also works for my custom 
 dialog!

 protected void onSetInitialValue(boolean restorePersistedValue, Object 
 defaultValue)

 protected Object onGetDefaultValue(TypedArray a, int index)



 On Sunday, July 15, 2012 2:18:37 PM UTC+2, jdr88 wrote:

 I just came across the same issue and can confirm the same behaviour:

 *android:defaultValue* of a custom DialogPreference is *not* set
 with PreferenceManager.setDefaultValues() method.

 Seems like a bug?
 I'm using now the solution that you proposed...


 On Thursday, 13 October 2011 23:11:27 UTC+2, tlegras wrote:

 Okay, I give up. 
 My preference default value will be copied in the preference access 
 code as well:

 value = sharedPref.getInt(mykey,myDirtyHardcodedDefaultValue );


 If ever someone has a better solution, it will be welcome :)

 Thierry.


  2011/10/11 Thierry Legras tle...@gmail.com

 Hi Ibendlin,

 Thanks for helping me :)

 I don't think the problem is in SeekBarPreference.onSetInitialValue() 
 function itself as it is never called (I have put a log in it to check). 
 There is certainly an issue somewhere in my implementation; when 
 setDefaultValues is called, only SeekBarPreference constructor is called. 

 I was suspecting the xml, but I don't see any problem in it 
 (android:defaultValue is set and android:persistent as well):

 com.tlegras.tools.SeekBarPreference 
 android:key=preferences_epg_daytostore
 android:title=@string/preferences_epg_daytostore_title
 android:summary=@string/preferences_epg_daytostore_summary
 android:dialogMessage=Nombre de journées à télécharger. 
 Attention, plus ce nombre est élevé, plus le chargement sera long et 
 moins l'application sera réactive.
 android:text= jour(s)
 android:defaultValue=4
 android:max=5
 android:persistent=true 
 /


 2011/10/11 lbendlin lu...@bendlin.us

 it took me a few weeks to get that right.  here's my example for a 
 boolean value. And yes, .setDefaultValues is actually working, despite 
 what 
 you may think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object 
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) : 
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

  -- 
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-d...@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




 -- 
 Thierry.




 -- 
 Thierry.
  


-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
Android Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2012-09-23 Thread Gene Wildhart
Your solution works perfectly for me on Gingerbread (Android 2.3.7) and 
below.  However, when trying on ICS (4.0+) or newer, neither the *
onSetInitialValue* or the *onGetDefaultValue* functions are ever called. 
 Can anyone explain why the behavior changed in ICS?

On Friday, July 27, 2012 1:41:50 AM UTC-7, Jens wrote:

 Finally, I've found a solution to this problem!

 The official documentation for the preferences activity has just been 
 updated.
 Check out the paragraph about Building a Custom Preference
 http://developer.android.com/guide/topics/ui/settings.html#Custom

 You have to implemenet both of the following methods the way it is 
 described.
 Now *PreferenceManager.setDefaultValues()* also works for my custom 
 dialog!

 protected void onSetInitialValue(boolean restorePersistedValue, Object 
 defaultValue)

 protected Object onGetDefaultValue(TypedArray a, int index)



 On Sunday, July 15, 2012 2:18:37 PM UTC+2, jdr88 wrote:

 I just came across the same issue and can confirm the same behaviour:

 *android:defaultValue* of a custom DialogPreference is *not* set
 with PreferenceManager.setDefaultValues() method.

 Seems like a bug?
 I'm using now the solution that you proposed...


 On Thursday, 13 October 2011 23:11:27 UTC+2, tlegras wrote:

 Okay, I give up. 
 My preference default value will be copied in the preference access code 
 as well:

 value = sharedPref.getInt(mykey,myDirtyHardcodedDefaultValue );


 If ever someone has a better solution, it will be welcome :)

 Thierry.


  2011/10/11 Thierry Legras tle...@gmail.com javascript:

 Hi Ibendlin,

 Thanks for helping me :)

 I don't think the problem is in SeekBarPreference.onSetInitialValue() 
 function itself as it is never called (I have put a log in it to check). 
 There is certainly an issue somewhere in my implementation; when 
 setDefaultValues is called, only SeekBarPreference constructor is called. 

 I was suspecting the xml, but I don't see any problem in it 
 (android:defaultValue is set and android:persistent as well):

 com.tlegras.tools.SeekBarPreference 
 android:key=preferences_epg_daytostore
 android:title=@string/preferences_epg_daytostore_title
 android:summary=@string/preferences_epg_daytostore_summary
 android:dialogMessage=Nombre de journées à télécharger. 
 Attention, plus ce nombre est élevé, plus le chargement sera long et 
 moins l'application sera réactive.
 android:text= jour(s)
 android:defaultValue=4
 android:max=5
 android:persistent=true 
 /


 2011/10/11 lbendlin lu...@bendlin.us javascript:

 it took me a few weeks to get that right.  here's my example for a 
 boolean value. And yes, .setDefaultValues is actually working, despite 
 what 
 you may think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object 
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) : 
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

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




 -- 
 Thierry.




 -- 
 Thierry.
  


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

Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2012-07-27 Thread jdr88
Finally, I've found a solution to this problem!

The official documentation for the preferences activity has just been 
updated.
Check out the paragraph about Building a Custom Preference
http://developer.android.com/guide/topics/ui/settings.html#Custom

You have to implemenet both of the following methods the way it is 
described.
Now *PreferenceManager.setDefaultValues()* also works for my custom dialog!

protected void onSetInitialValue(boolean restorePersistedValue, Object 
defaultValue)

protected Object onGetDefaultValue(TypedArray a, int index)



On Sunday, July 15, 2012 2:18:37 PM UTC+2, jdr88 wrote:

 I just came across the same issue and can confirm the same behaviour:

 *android:defaultValue* of a custom DialogPreference is *not* set
 with PreferenceManager.setDefaultValues() method.

 Seems like a bug?
 I'm using now the solution that you proposed...


 On Thursday, 13 October 2011 23:11:27 UTC+2, tlegras wrote:

 Okay, I give up. 
 My preference default value will be copied in the preference access code 
 as well:

 value = sharedPref.getInt(mykey,myDirtyHardcodedDefaultValue );


 If ever someone has a better solution, it will be welcome :)

 Thierry.


  2011/10/11 Thierry Legras tleg...@gmail.com

 Hi Ibendlin,

 Thanks for helping me :)

 I don't think the problem is in SeekBarPreference.onSetInitialValue() 
 function itself as it is never called (I have put a log in it to check). 
 There is certainly an issue somewhere in my implementation; when 
 setDefaultValues is called, only SeekBarPreference constructor is called. 

 I was suspecting the xml, but I don't see any problem in it 
 (android:defaultValue is set and android:persistent as well):

 com.tlegras.tools.SeekBarPreference 
 android:key=preferences_epg_daytostore
 android:title=@string/preferences_epg_daytostore_title
 android:summary=@string/preferences_epg_daytostore_summary
 android:dialogMessage=Nombre de journées à télécharger. 
 Attention, plus ce nombre est élevé, plus le chargement sera long et 
 moins l'application sera réactive.
 android:text= jour(s)
 android:defaultValue=4
 android:max=5
 android:persistent=true 
 /


 2011/10/11 lbendlin l...@bendlin.us

 it took me a few weeks to get that right.  here's my example for a 
 boolean value. And yes, .setDefaultValues is actually working, despite 
 what 
 you may think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object 
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) : 
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

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




 -- 
 Thierry.




 -- 
 Thierry.
  


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

Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2012-07-15 Thread jdr88
I just came across the same issue and can confirm the same behaviour:

*android:defaultValue* of a custom DialogPreference is *not* set
with PreferenceManager.setDefaultValues() method.

Seems like a bug?
I'm using now the solution that you proposed...


On Thursday, 13 October 2011 23:11:27 UTC+2, tlegras wrote:

 Okay, I give up. 
 My preference default value will be copied in the preference access code 
 as well:

 value = sharedPref.getInt(mykey,myDirtyHardcodedDefaultValue );


 If ever someone has a better solution, it will be welcome :)

 Thierry.


  2011/10/11 Thierry Legras tleg...@gmail.com

 Hi Ibendlin,

 Thanks for helping me :)

 I don't think the problem is in SeekBarPreference.onSetInitialValue() 
 function itself as it is never called (I have put a log in it to check). 
 There is certainly an issue somewhere in my implementation; when 
 setDefaultValues is called, only SeekBarPreference constructor is called. 

 I was suspecting the xml, but I don't see any problem in it 
 (android:defaultValue is set and android:persistent as well):

 com.tlegras.tools.SeekBarPreference 
 android:key=preferences_epg_daytostore
 android:title=@string/preferences_epg_daytostore_title
 android:summary=@string/preferences_epg_daytostore_summary
 android:dialogMessage=Nombre de journées à télécharger. 
 Attention, plus ce nombre est élevé, plus le chargement sera long et 
 moins l'application sera réactive.
 android:text= jour(s)
 android:defaultValue=4
 android:max=5
 android:persistent=true 
 /


 2011/10/11 lbendlin l...@bendlin.us

 it took me a few weeks to get that right.  here's my example for a 
 boolean value. And yes, .setDefaultValues is actually working, despite what 
 you may think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object 
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) : 
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

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




 -- 
 Thierry.




 -- 
 Thierry.
  

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

Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2011-10-13 Thread Thierry Legras
Okay, I give up.
My preference default value will be copied in the preference access code as
well:

value = sharedPref.getInt(mykey,myDirtyHardcodedDefaultValue );


If ever someone has a better solution, it will be welcome :)

Thierry.


2011/10/11 Thierry Legras tleg...@gmail.com

 Hi Ibendlin,

 Thanks for helping me :)

 I don't think the problem is in SeekBarPreference.onSetInitialValue()
 function itself as it is never called (I have put a log in it to check).
 There is certainly an issue somewhere in my implementation; when
 setDefaultValues is called, only SeekBarPreference constructor is called.

 I was suspecting the xml, but I don't see any problem in it
 (android:defaultValue is set and android:persistent as well):

 com.tlegras.tools.SeekBarPreference
 android:key=preferences_epg_daytostore
 android:title=@string/preferences_epg_daytostore_title
 android:summary=@string/preferences_epg_daytostore_summary
 android:dialogMessage=Nombre de journées à télécharger.
 Attention, plus ce nombre est élevé, plus le chargement sera long et moins
 l'application sera réactive.
 android:text= jour(s)
 android:defaultValue=4
 android:max=5
 android:persistent=true
 /


 2011/10/11 lbendlin l...@bendlin.us

 it took me a few weeks to get that right.  here's my example for a boolean
 value. And yes, .setDefaultValues is actually working, despite what you may
 think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) :
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

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




 --
 Thierry.




-- 
Thierry.

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

Re: [android-developers] Re: Custom DialogPreference and PreferenceManager.setDefaultValues issue

2011-10-11 Thread Thierry Legras
Hi Ibendlin,

Thanks for helping me :)

I don't think the problem is in SeekBarPreference.onSetInitialValue()
function itself as it is never called (I have put a log in it to check).
There is certainly an issue somewhere in my implementation; when
setDefaultValues is called, only SeekBarPreference constructor is called.

I was suspecting the xml, but I don't see any problem in it
(android:defaultValue is set and android:persistent as well):

com.tlegras.tools.SeekBarPreference
android:key=preferences_epg_daytostore
android:title=@string/preferences_epg_daytostore_title
android:summary=@string/preferences_epg_daytostore_summary
android:dialogMessage=Nombre de journées à télécharger.
Attention, plus ce nombre est élevé, plus le chargement sera long et moins
l'application sera réactive.
android:text= jour(s)
android:defaultValue=4
android:max=5
android:persistent=true
/


2011/10/11 lbendlin l...@bendlin.us

 it took me a few weeks to get that right.  here's my example for a boolean
 value. And yes, .setDefaultValues is actually working, despite what you may
 think :-/

@Override
 protected void onSetInitialValue(boolean restoreValue, Object
 defaultValue) {
 boolean temp = restoreValue ? getPersistedBoolean(false) :
 defaultValue.toString().equals(true) ? true : false;
 if (!restoreValue)
 persistBoolean(temp);
 this.oldValue = temp;
 }

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




-- 
Thierry.

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