Как инициализировать экран настроек при первом вызове?

1

Я считаю, что я правильно инициализирует настройки из XML. Экран "Мои настройки" также работает правильно и отображает правильные пользовательские настройки.

Однако при вызове first этого экрана настроек никто не установлен (флажок) или выбран (список). Это, конечно, смущает пользователя, поскольку оно не отражает текущее (стандартное/начальное) значение.

Поскольку все, что я делаю для вызова экрана настроек,

startActivity(new Intent(this, EditPreferences.class));

И мой класс EditPreferences содержит только:

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.usersettings);
  }

Я не уверен, где и как сказать, чтобы предварительно инициализировать визуальный дисплей с настройкой по умолчанию.

У меня есть такая догадка, что все, что мне не хватает, это одна строка, но я не знаю, где: XML файл? переопределить метод в EditPreferences? Другое?

Теги:
sharedpreferences
android-preferences
preferenceactivity
preferencescreen

2 ответа

1
Лучший ответ

Не можете ли вы определить значение по умолчанию в самом XML?

<CheckBoxPreference ...
   android:defaultValue="true" 
   ... />
  • 0
    Спасибо +1. Это именно то, чего мне не хватало. Теперь он работает для CheckBox, но по какой-то причине он не работает для <ListPreference> (я пробовал android:defaultValue="0" ). Что такое «трюк» для <ListPreference> ?
  • 0
    Принят, поскольку вы были первым, кто дал правильный ответ.
1

Вы можете указать значение по умолчанию для предпочтения (например, в вашем xml-макете):

<EditTextPreference android:defaultValue="whatever" />
  • 0
    Спасибо +1. Ваш ответ идентичен @ dmon's. У меня все еще есть небольшая проблема с <ListPreference> . Что мне не хватает?
  • 1
    Это должно работать так же, если у вас есть массив строк, указанный в ваших «входных значениях», вы должны поместить значение одной из этих строк в поле значения по умолчанию
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню