數據存儲之SharePreference


SharePreference

這個類可以用來保存一些應用程序要的配置或簡單的數據,對於大量數據可能力有不逮,類似於WIN下面的ini文件。

數據會被保存在/data/data/PACKAGE_NAME /shared_prefs 。

對象的創建:

 getSharedPreferences(String filename, int mode);

公共函數:

abstract boolean  contains(String key)   檢查文件中是否包含這個key

abstract SharedPreferences.Editor  edit()  創建一個Editor對象,通過這個對象可以改變數據,注意的是數據被修改后需要使用函數commint()進行提交。

abstract Map<String, ?>  getAll() 獲取文件中所有的數據。

abstract boolean  getBoolean(String key, boolean defValue) 獲取一個boolean類型的數據,下面的幾個函數非常類似。

abstract float  getFloat(String key, float defValue) 

abstract int  getInt(String key, int defValue) 

abstract long  getLong(String key, long defValue) 

abstract String  getString(String key, String defValue) 

abstract Set<String>  getStringSet(String key, Set<String> defValues) 

abstract void  registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 注冊一個回調函數,當preference被修改時調用。

abstract void  unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 

一個簡單的例子:

SharedPreferences sh=getSharedPreferences("data", 0);

SharedPreferences.Editor editor=sh.edit();//創建一個editor對象,要注意。

editor.putString("key1", "test1..");

editor.putString("key2", "test2..");

editor.commit();

System.out.println(sh.getString("key1", "null")+"---"+sh.getString("key2", "null"));


如果使用:

sh.edit().putString("key1", "test1..");

sh.edit().commit();

就會發現沒有保存任何內容,為什么呢? 因為下面那個sh.edit().commit();實際上創建了一個新的edit並提交了,前面那個edit並沒有提交,內容當然沒有保存了


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com