Как PreferenceActivity может использовать пользовательский файл настроек - PullRequest
21 голосов
/ 02 марта 2011

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

Я хочу перейти на использование PreferenceActivity, но я также хочу, чтобы мои пользователи сохранили свои предпочтения.

Есть ли способ указать моей PreferenceActivity использовать этот конкретный файл для всех настроек?

Ответы [ 3 ]

67 голосов
/ 20 апреля 2011

Возможно, будет слишком поздно опубликовать это, но вы можете найти хорошее решение здесь

Вы заранее задаете имя файла общих настроек по умолчанию следующим образом:

public class MyPreferencesActivity extends PreferenceActivity {
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         PreferenceManager prefMgr = getPreferenceManager();
         prefMgr.setSharedPreferencesName("my_preferences");
         prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE);

         addPreferencesFromResource(R.xml.preferences);
    }
}

Надеюсь, это кому-нибудь поможет.

С уважением.

1 голос
/ 02 марта 2011

Вы можете прочитать все настройки в начале вашего приложения, а затем сохранить их в Preferences, используя

Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putBoolean("yourPreference", true);
e.putString("yourOtherPreference", "This is the Value");
...
e.commit();

Надеюсь, это поможет

0 голосов
/ 02 марта 2011

Maaalte правильно, что вы хотите сделать, это onCreate проверить наличие вашего пользовательского файла и, если он есть, переименовать его в стандартное имя файла общих настроек.

Другой вариант - прочитать ваши старые настройки один-в-один и используйте API общих настроек, чтобы добавить их, когда вы их читаете, а затем удалите свои старые префы, когда закончите.

...