Tane Piper wrote:
> Hi there,
>
> I'm have written a preference activity for my application, where I
> want to allow the user to currently set a timeout value for GPS.
>
> In my XML I have this in array.xml:
>
> <?xml version="1.0" encoding="utf-8"?>
> <resources>
> <string-array name="list_gps_timeout">
> <item value="20000">20 Seconds</item>
> <item value="30000">30 Seconds</item>
> <item value="60000">60 Seconds</item>
> </string-array>
> </resources>
>
> And in the layout file, I have this:
>
> <?xml version="1.0" encoding="utf-8"?>
> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/
> android">
>
> <ListPreference
> android:entryValues="@array/list_gps_timeout"
> android:entries="@array/list_gps_timeout"
> android:title="GPS Timeout"
> android:summary="The time that the GPS stops searching and falls back
> to the last know position."
> android:key="gps_timeout"
> android:defaultValue="20000">
> </ListPreference>
> </PreferenceScreen>
>
> After setting the value, I then do this within my activity:
>
> app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
> GPS_TIMEOUT = app_preferences.getInt("gps_timeout",
> DEFAULT_GPS_TIMEOUT);
>
> However, what is returned is "20 Seconds" rather than the value 20000
> as an integer. Can anyone see where I am going wrong?
You need two arrays, one with display values and one with the actual
numerical values you want.
For example:
<string-array name="foo_periods">
<item>5 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item>
<item>4 hours</item>
<item>1 day</item>
</string-array>
<string-array name="foo_periods_secs">
<item>5</item>
<item>30</item>
<item>60</item>
<item>300</item>
<item>600</item>
<item>900</item>
<item>1800</item>
<item>3600</item>
<item>14400</item>
<item>86400</item>
</string-array>
And in your preferences XML:
<ListPreference
android:key="foo"
android:title="The Foo"
android:summary="Click to select the foo time"
android:entries="@array/foo_periods"
android:entryValues="@array/foo_periods_secs"
android:dialogTitle="Hi, Mom!" />
Note the android:entryValues attribute in the ListPreference.
--
Mark Murphy (a Commons Guy)
http://commonsware.com
_The Busy Coder's Guide to Android Development_ Version 2.0 Available!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---