Неправильные значения, когда я выбираю radioButton в ListPreference

У меня есть действие Preference, которое использует Список настроек, как определено моим XML-файлом:

<?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen
            xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory
                android:title="sync">
            <ListPreference
                    android:key="key_sync_period"
                    android:title="Sync"
                    android:summary="%s"
                    android:dialogTitle="Sync frequency"
                    android:entries="@array/sync_period_entries"
                    android:entryValues="@array/sync_period_values"
                    android:defaultValue="1800" />
        </PreferenceCategory>
    </PreferenceScreen>

arrays.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="sync_period_entries">
        <item>15 min</item>
        <item>30 min</item>
        <item>45 min</item>
        <item>1 hour</item>
    </string-array>

    <string-array name="sync_period_values">
        <item>900</item>
        <item>1800</item>
        <item>2700</item>
        <item>3600</item>
    </string-array>
</resources>

Когда я запускаю свое приложение, меняю этот параметр и вижу следующее:

  • приложение записывает в файл defaultSharedPreference значение = 1800
  • Я изменяю его на "15 минут" и вижу значение = 900 - хорошо, все в порядке
  • Я изменяю его на "45 мин" и вижу значение = 60 -???
  • Я изменяю его на "1 час" и вижу значение = 180 -???????
  • Я снова меняю его на "30 мин" и вижу значение = 1800
  • Я изменяю его на "1 час" и вижу значение = 180 - почему?

Почему я вижу эти значения (60, 180)? Откуда они пришли?

Обновление 1:

if (key.equals("key_sync_period"))
{
    ListPreference syncPref = (ListPreference) findPreference(key);
    syncPref.setSummary(syncPref.getEntry());
    long seconds = Long.valueOf(sharedPreferences.getString(key, "1800"));
}

Система пишет defaultSharedPreferences. Я вижу файл настроек из ddms и вижу, что система записала неверное значение.

1 ответ

Решение

Проблема была в Idea 12CE, я удалил проект и импортировал его снова... и проблема была решена.

Другие вопросы по тегам