Как проверить, существует ли SharedPreferences или нет


Я проверяю таким образом, существует ли файл, но мне нужно выйти за его пределы, мне нужно знать, есть ли он в конкретном, есть ли какой-то способ?

File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml");
          if (f.exists()){

          }
          else{

          }  
3   30   2014-04-02 23:34:01

3 ответа:

SharedPreferences имеет метод contains(String key), с помощью которого можно проверить, существует ли запись с данным ключом.

Http://developer.android.com/reference/android/content/SharedPreferences.html

Ну, можно было бы сделать:

    SharedPreferences sharedPrefs = getSharedPreferences("sp_name", MODE_PRIVATE);
    SharedPreferences.Editor ed;
    if(!sharedPrefs.contains("initialized")){
        ed = sharedPrefs.edit();

        //Indicate that the default shared prefs have been set
        ed.putBoolean("initialized", true);

        //Set some default shared pref
        ed.putString("myDefString", "wowsaBowsa");

        ed.commit();
    }  

Другое решение:

Если вы знаете точное число имеющихся у вас предпочтений, вы можете:

public void isPreferencesSet(Context context){
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
    return (sharedPreferences.getAll().size() == exactNumberOfPreferences);
}

Это работает, потому что файл настроек хранится в файле /data / data / myApp/shared_prefs / myApp_prefrences.xml содержит пару значений предпочтения только в том случае, если его значение задано.