Mystery solved. I was calling "alarm_delay_keys" from res/xml/
arrays.xml in settings.getString() when I should have been calling
"alarm_delay_list" from res/xml/preferences.xml.

On Sep 14, 11:09 am, Ostaski <osta...@gmail.com> wrote:
> I am using a CountDownTimer which is set by a alarm_delay_keys value:
>
> public void arming() {
>         // changing system_state textview
>         tvSystemState = (TextView) findViewById(R.id.system_state);
>         tvSystemState.setText(R.string.system_state_arming);
>         // starting countdown
>         settings = getPrefs();
>         seconds = Integer.parseInt(settings.getString("alarm_delay_keys",
> "30"));
>         alarmDelay = seconds * 1000;
>         CountDown counter = new CountDown(alarmDelay,1000);
>         counter.start();
>
> }
>
> public SharedPreferences getPrefs() {
> //      PreferenceManager pm = pa.getPreferenceManager();
> //      settings = pm.getSharedPreferences();
> //      settings = this.getPreferences(0);
> //      settings = PreferenceManager.getDefaultSharedPreferences(this);
>         settings = PreferenceManager.getDefaultSharedPreferences
> (getBaseContext());
>         return settings;
>
> }
>
> public class CountDown extends CountDownTimer {
>         private TextView tvCountDown = (TextView) findViewById
> (R.id.progress);
>         private TextView tvSystemState = (TextView) findViewById
> (R.id.system_state);
>
>         public CountDown(long millisInFuture, long countDownInterval) {
>                 super(millisInFuture, countDownInterval);
>         }
>
>         @Override
>         public void onFinish() {
>         tvSystemState.setText(R.string.system_state_armed);
>         tvCountDown.setText(R.string.armed);
>         }
>
>         @Override
>         public void onTick(long millisUntilFinished) {
>                 tvCountDown.setText(millisUntilFinished/1000 + " seconds until
> Armed");
>
>         }
>
> Here's a snippet of the res/values/arrays.xml:
>
>         <string-array name="alarm_delay_keys">
>                 <item>15 seconds</item>
>                 <item>30 seconds</item>
>                 <item>1 minute</item>
>                 <item>5 minutes</item>
>                 <item>15 minutes</item>
>         </string-array>
>         <string-array name="alarm_delay_values">
>                 <item>15</item>
>                 <item>30</item>
>                 <item>60</item>
>                 <item>300</item>
>                 <item>900</item>
>         </string-array>
>
> and the snippet from res/xml/preferences.xml:
>
>                 <ListPreference
>                         android:key="alarm_delay_list"
>                         android:title="Alarm Delay"
>                         android:summary="Click to change the alarm delay"
>                         android:entries="@array/alarm_delay_keys"
>                         android:entryValues="@array/alarm_delay_values"
>                         android:dialogTitle="Choose your alarm 
> delay\n(default is 1
> minute)"
>                         android:defaultValue="60"
>                 />
>
> If I change the value in the options menu, the radio gets set to the
> correct value. The timer works, but keeps using the default value of
> 30 no matter what I set the value to in the options menu.
>
> I assume this means I am not retreiving the preferences, since the
> default value is set at:
>         seconds = Integer.parseInt(settings.getString("alarm_delay_keys",
> "30"));
>
> As you can see above, I tried several variations for calling
> PreferenceManager, but these did not make a difference.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to