Reputation: 637
I'm checking in this way if the file exists, but I need to go beyond, I need to know if there is one in specific, is there any way?
File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml");
if (f.exists()){
}
else{
}
Upvotes: 61
Views: 79565
Reputation: 2506
Check if SharedPreferences key exists:
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
if(mPrefs.getAll().containsKey("KeyName")){
Upvotes: 1
Reputation: 1445
You can try this
fun checkLoginInfo(): Boolean{
val saveLogin = sharedPreferences.getBoolean(SAVE_LOGIN, false)
return saveLogin
}
Checks whether the preferences contains a preference.
@param(SAVE_LOGIN) key The name of the preference to check.
@param(false) default
@return Returns true if the preference exists in the preferences, otherwise false.
Upvotes: 0
Reputation: 3574
Well, one could do:
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();
}
Upvotes: 33
Reputation: 2789
Another solution:
If you know the exact number of preferences you have you can:
public void isPreferencesSet(Context context){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
return (sharedPreferences.getAll().size() == exactNumberOfPreferences);
}
This works because the preferences file stored in /data/data/myApp/shared_prefs/myApp_prefrences.xml contains a preference's value pair only if its value has been set.
Upvotes: 1
Reputation: 2737
SharedPreferences
has a contains(String key)
method, which can be used to check if an entry with the given key exists.
http://developer.android.com/reference/android/content/SharedPreferences.html
Upvotes: 116