この方法でファイルが存在するかどうかを確認していますが、さらに先へ進む必要があります。特定のファイルがあるかどうかを知る必要があります。何か方法はありますか?
File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml");
if (f.exists()){
}
else{
}
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に保存されている設定ファイルに値が設定されている場合にのみ、設定の値のペアが含まれているため機能します。