Инициализируйте предпочтения от XML в основном виде деятельности [дубликат]

Этот вопрос уже имеет ответ здесь:

Моя проблема состоит в том, что то, когда я запускаю приложение и пользователя, не открыло мой PreferenceActivity таким образом, когда я получаю их, не получают значений по умолчанию, определенных в моем файле preference.xml.

Файл preference.xml:



                      

Отрывок от моего основного вида деятельности (onCreate метод):

    SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this);        
    String pref1 = appPreferences.getString("pref1", null);

В результате я заканчиваю с a null значение.

50
задан gobernador 8 July 2016 в 04:29
поделиться

3 ответа

В onCreate () вашего основного Activity просто вызовите метод PreferenceManager.setDefaultValues ​​() ].

PreferenceManager.setDefaultValues(this, R.xml.preference, false);

Будет прочитан ваш файл preference.xml и установлены значения по умолчанию, определенные в нем. Установка для аргумента readAgain значения false означает, что значения по умолчанию будут установлены только в том случае, если этот метод никогда не вызывался в прошлом, поэтому вам не нужно беспокоиться о переопределении пользовательских настроек каждый раз. время создания вашего действия .

107
ответ дан 7 November 2019 в 10:38
поделиться

Ваш вызов getString () имеет null в качестве второго параметра. Измените его на желаемое значение по умолчанию.

8
ответ дан 7 November 2019 в 10:38
поделиться

Я буду краток. :)

strings.xml (на самом деле у меня есть prefs.xml исключительно для предпочтений):

<string name="pref_mypref_key">mypref</string>
<string name="pref_mypref_default">blah</string>

preferences.xml :

android:key="@string/pref_mypref_key"
android:defaultValue="@string/pref_mypref_default"

MyActivity.java :

String myprefVal = prefs.getString(getString(R.string.pref_mypref_key), getString(R.string.pref_mypref_default));
14
ответ дан 7 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: