Как в инит-ой строке, чтобы одно из его значений
Я пытаюсь установить значение по умолчанию для элемента ListPreference.
вот пример моих предпочтений.xml-файл:
<ListPreference android:key="notification_delay"
android:title="@string/settings_push_delay"
android:entries="@array/settings_push_delay_human_value"
android:entryValues="@array/settings_push_delay_phone_value"
android:defaultValue="????">
</ListPreference>
два массива:
<string-array name="settings_push_delay_human_value">
<item>every 5 minutes</item>
<item>every 10 minutes</item>
<item>every 15 minutes</item>
</string-array>
<string-array
name="settings_push_delay_phone_value">
<item>300</item>
<item>600</item>
<item>900</item>
</string-array>
когда я перехожу в действие предпочтения, ни один элемент ListPreference не выбран. Я попытался установить значение int как 1 в" android:defaultValue "fied, чтобы выбрать" 10 минут", но это не работает.
<ListPreference android:key="notification_delay"
android:title="@string/settings_push_delay"
android:entries="@array/settings_push_delay_human_value"
android:entryValues="@array/settings_push_delay_phone_value"
android:defaultValue="1">
</ListPreference>
Есть Идеи?
4 ответа:
необходимо указать стоимостью. Поэтому, чтобы получить первую запись, выбранную по умолчанию, укажите
defaultValue="300"
в вашем примере.
оказался в такой же ситуации. Указание согласованного значения по умолчанию. Но графически не был выбран. Я очистил данные приложения. А потом все получилось, как и ожидалось. Таким образом, clear может быть полезен во время разработки при добавлении новых элементов XxxPreference.
в дополнение к ответу Свена, вы должны вызвать метод setDefaultValues() в стартовом действии. Это установит один раз все значения по умолчанию.
public class MainActivity extends Activity { protected void onCreate(final Bundle savedInstanceState) { // Set all default values once for this application // This must be done in the 'Main' first activity PreferenceManager.setDefaultValues(this, R.xml.preferences, false); ... } }