SharedPreferencesノート
5268 ワード
SharedPreferences sp = getSharedPreferences("ZHIFU_progress",0);
sp.edit().putString("StarImgUrl",url).commit();
StarImgUrl = sp.getString("StarImgUrl","-1");
getSharedPreferences
の2番目のパラメータは、データを保存するポリシーgetString
の2番目のパラメータがデフォルトの戻り値であることを決定し、オブジェクトが見つからない場合に戻るSharedPreferencesキーメソッド
Editor editor = sharedPreferences.edit();//
また、書き込み後にcommitメソッドを呼び出すと保存されます.
editor.putInt("num", 4);
editor.commit();//
//editor.apply();
commitとapplyの違いはcommitがbooleanを返すことです
/**
* @param mode
* MODE_PRIVATE //
* MODE_APPEND //
* MODE_PRIVATE // ,
* MODE_WORLD_READABLE //
* MODE_WORLD_WRITEABLE //
*/
SharedPreferences getSharedPreferences(String filename,int mode)
StarImgUrl = sp.getString("StarImgUrl","-1");
上記のように、2番目のパラメータは、対応するkeyのデータが存在しない場合に返されるデフォルト値を指す.
表示と削除
/data/data//shared_prefs
の下に存在し、DDMSを開くFiler Explorer (Android Studio > Tools > Android > Android Device Monitor)
本体デバッグ時にDDMSでdataフォルダを開くには権限が必要で、Android StudioのDDMSではdataディレクトリを開くことができません
File file= new File("/data/data/"+getPackageName().toString()
+"/shared_prefs","ZHIFU_progress.xml");
if(file.exists()){
file.delete();
}
その他のアプリケーションの情報へのアクセス
参考Android-sharepreferenceまとめ
Context otherAppsContext = createPackageContext("com.wujay.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("wujay", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);
Contextを作成して他のアプリケーションのpreferenceにアクセスしない場合は、xmlファイルを読み込むことで、次のような他のアプリケーションのpreferenceに対応するxmlファイルに直接アクセスできます.
File xmlFile = new File(“/data/data//shared_prefs/itcast.xml”);
// 。
単純にカプセル化されたツールクラス
public class SharePreferenceUtils {
private SharedPreferences mSharedPreferences;
private SharedPreferences.Editor mEditor;
public SharePreferenceUtils(Context context,String name){
mSharedPreferences = context.getSharedPreferences(name,Context.MODE_PRIVATE);
mEditor = mSharedPreferences.edit();
}
/**
*
* @param key
* @param data
*/
public void putAndApply(String key,Object data){
if (data instanceof String) {
mEditor.putString(key, (String) data);
} else if (data instanceof Integer) {
mEditor.putInt(key, (Integer) data);
} else if (data instanceof Boolean) {
mEditor.putBoolean(key, (Boolean) data);
} else if (data instanceof Float) {
mEditor.putFloat(key, (Float) data);
} else if (data instanceof Long) {
mEditor.putLong(key, (Long) data);
} else {
mEditor.putString(key, data.toString());
}
mEditor.apply();
}
/**
*
* @param key
* @param defaultObject ,
* @return
*/
public Object getValue(String key,Object defaultObject){
if (defaultObject instanceof String) {
return mSharedPreferences.getString(key, (String) defaultObject);
} else if (defaultObject instanceof Integer) {
return mSharedPreferences.getInt(key, (Integer) defaultObject);
} else if (defaultObject instanceof Boolean) {
return mSharedPreferences.getBoolean(key, (Boolean) defaultObject);
} else if (defaultObject instanceof Float) {
return mSharedPreferences.getFloat(key, (Float) defaultObject);
} else if (defaultObject instanceof Long) {
return mSharedPreferences.getLong(key, (Long) defaultObject);
} else {
return null;
}
}
/**
* key
* @param key
*/
public void remove(String key){
mEditor.remove(key);
}
/**
*
*/
public void clear(){
mEditor.clear();
}
/**
* key
* @param key
* @return
*/
public boolean isContains(String key){
return mSharedPreferences.contains(key);
}
}