数据存储之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并没有提交,内容当然没有保存了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值