保存数据 之 键值对的设置

如果有一些小数据的键值对需要保存,可以用SharedPreferences  这个类里面的API。SharedPreferences 对象指向一个包含键值对的文件,并且提供了一些读取和写入键值对的方法。SharedPreferences 是被framework层管理的,可以是私有的,也可以被共享。

注意:SharePreferences 仅仅是操作键值对,不可以和Preference 混淆,Preference会创建一个设置界面,尽管它里面还是用SharePreferences 来保存信息。想了解更多请阅读:Preference 和Settings

处理SharedPreferences

你可以创建一个新 的SharePreferences 文件或者是获取一个已经存在,我们可以使用下面的方法:

getSharedPreferences()  利用这个方法可以通过名称来获取到一个可以共享的preference 文件,名称在第一个参数里面指定,可以用你的activity里面的任何一个Contextd对象

来获取它。

getPreferences() 这个方法获取的到时针对这个activity的共享preference 文件。因为这个文件仅仅是针对这个activity的,所有不需要提供一个名称。

比方说,下面的这个代码是在一个Fragment里面执行的,获取了一个由字符串资源里面的R.string.preference_file_key命名的preference 文件,设置wie私有模式,这样这个文件就仅仅可以被你的APP访问。

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

当命名共享的preference文件的时候,你需要使用一个在你的APP里面唯一的字符串标示,就像"com.example.myapp.PREFERENCE_FILE_KEY"

另外,如果仅仅是针对一个activity需要共享的preference文件的时候,可以使用getPreferences()方法。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

警告:如果创建shared preferences文件的时候使用了MODE_WORLD_READABLE or MODE_WORLD_WRITEABLE属性,任何其他的app如果知道你的这个文件的名称,都可以访问你的数据。

写数据到Shared Preferences

要往shared preferences里面写数据,需要调用SharedPreferences 的edit()获取一个SharedPreferences.Editor对象。

然后用这个Editor里面的方法来写入数据,列入putInt()putString()。然后调用commit()保存写入的结果。如下:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

从Shared Preferences里面读取数据

从一个shared preferences里面读取数据,可以调用getInt()getString()这类方法,如果对应的键值对存在,会获取到对应的键值对的值,否则,会返回一个默认数值。这个数值可以自己指定。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值