How can a PreferenceActivity use a custom preference file

前端 未结 3 1381
谎友^
谎友^ 2021-02-05 06:43

My first attempt at preferences was without knowledge of PreferenceActivity. So now I have an app that stores all user preferences in a specific preference file.

相关标签:
3条回答
  • 2021-02-05 06:54

    You could read all the preferences at the beginning of your app, and then store them in the Preferences using

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

    I hope that helps

    0 讨论(0)
  • 2021-02-05 07:02

    It may be too late to post this but you can find a nice solution here

    • How to make PreferenceActivity use non-default SharedPreferences

    You set the name of the default shared preferences file beforehand like this:

    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);
        }
    }
    

    I hope this helps somebody.

    Regards.

    0 讨论(0)
  • 2021-02-05 07:06

    Maaalte is correct, what you want to do is onCreate test for the existence of your custom file and if it's there, rename it to standard shared preferences filename.

    Another option is to read your old prefs one-by-one and use the shared preferences API to add them as you read them and then delete your old prefs when you are done.

    0 讨论(0)
提交回复
热议问题