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

来源:互联网 发布:交易平台php源码 编辑:程序博客网 时间:2024/05/22 01:59

保存数据(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 0
原创粉丝点击