Как прикрепить предпочтение к определенной SharedPreferences? - PullRequest
0 голосов
/ 11 июня 2011

Я работаю над реализацией настроек для нашего приложения. Я знаю, как отобразить пользовательский интерфейс настроек и как читать / записывать значения, используя SharedPreferences. В нашем приложении мне нужно обработать два набора предпочтений, и я хотел бы спросить об этой проблеме, в частности, один комментарий в документах Android.

Документация для Preference.getSharedPreferences () содержит следующий комментарий в разделе Return values:

Returns SharedPreferences, где это предпочтение считывает его значение (я), или ноль, если оно не присоединено к иерархии предпочтений.

Я хотел бы спросить, как можно прикрепить SharedPreferences к определенному Preference, будь то EditTextPreference или другим. Другими словами, как персистентный код в Preference знает, что он должен хранить пользовательский ввод в одном конкретном SharedPreferences объекте, а не в другом?

Чтобы объяснить мой вопрос далее на примере, предположим, что у меня есть следующее:

SharedPreferences prefs1 = getSharedPreferences(file1, mode);
SharedPreferences prefs2 = getSharedPreferences(file2, mode);

У меня вопрос, какой API мне следует использовать, чтобы prefs1 использовался кодом персистентности Preference объектов, а не prefs2.

Цель - Nexus One, работает 2.3.4.

Возможно, ответ очевиден, но я не смог его найти после прочтения документации и поиска в Интернете. Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 12 июня 2011

Другими словами, как код персистентности в Предпочтении узнает, что он должен хранить пользовательский ввод в одном конкретном объекте SharedPreferences, а не в другом?

Preference использует PreferenceManager s getSharedPreferences(), который в конечном итоге перенаправляется на getDefaultSharedPreferences().

. Вы можете создавать свои собственные подклассы Preference, которые изменяют это поведение, но так как система экрана предпочтений может не работатьнесколько SharedPreference объектов, есть вероятность, что ваши изменения предпочтений не будут сохраняться.

Я хочу побудить вас пересмотреть:

В нашем приложении мне нужно обработать дванаборы предпочтений

...