Training--保存数据(1)-- 保存键值对集合

保存数据(1)-- 保存键值对集合

 

如果你有一些相对少量的键值对形式的数据需要保存的话,你应该使用SharedPreferences接口。一个SharedPreferences对象指向一个保存了键值对的文件,并且提供一些简单方法读取和写入键值对数据。每一个SharedPreferences文件都由framework管理,它可以是私有的也可以是共享的。

 

本课程教你如何使用SharedPreferences接口来存储和读取简单的值。

 

获得一个指向SharedPreference的句柄

 

你可以使用下面两个方法中的一个来创建一个新的共享喜好文件或者访问一个已经存在的:

 

getSharedPreferences() – 如果你需要一个可以多处共享的喜好文件,那么你就使用这个接口,你可以在第一个参数中指定文件名。你可以在你的应用中使用任何Context引用来调用这个接口。

 

getPreferences() – 如果你需要一个仅共当前activity使用的单共享喜好文件的话,你可以使用这个接口。因为这个接口返回一个属于当前activity的默认喜好文件,所以你不需要提供文件名。

 

例如,下面是一段在某个fragment中执行的代码。它访问一个由资源字符串R.string.preference_file_key标识的喜好文件,使用私有模式打开,这样这个文件只能被你的应用使用。

 

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

 

当命名你的共享喜好文件时,你应该使用一个对于你的应用来说独一无二的名字,比如“com.example,myapp.PREFERENCE_FILE_KEY”。当然了,如果你需要一个仅对当前的activity服务的单共享喜好文件的话,你可以使用getPreferences()接口:

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

 

注意:如果你在创建共享的喜好文件时,使用MODE_WORLD_READABLE或MODE_WORLD_WRITABLE模式,那么其他应用如果知道这个喜好文件的名字,他们都是可以访问你的数据的。

 

写入共享喜好

 

为了写入共享喜好文件,需要调用SharedPreferences的edit()方法创建一个SharedPreferences.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();

 

读取共享喜好

 

为了从共享喜好文件中读取数据,调用方法如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、付费专栏及课程。

余额充值