如果你有一个比较小的键值对集合需要保存,你应该使用 SharedPreferences
API。一个SharedPreferences
对象指向一个包含键值对的文件并提供简单的方法读写键值对。每个SharedPreferences
文件都由框架管理,它可以是私有的或共享的。
这节课教你怎样使用 SharedPreferences
API 存储和检索简单的值。
注意:SharedPreferences
API 只用于读写键值对,你不应该把它们与Preference
API 混淆,Preference API 帮助你为应用的设置构建用户界面(尽管它们使用SharedPreferences
作为它们的实现来保存应用设置)。关于使用Preference
API 的信息,参见设置指南。
你可以调用下面两个方法中的一个,创建一个新的共享首选项文件或使用一个已存在的文件:
getSharedPreferences()
— 如果你需要根据名称区分的多个首选项文件,那就使用这个方法,用第一个参数指定名称。你可以在你的应用中任意Context
调用这个方法。getPreferences()
— 如果你只需要为某个 activity 使用一个共享首选项文件,你可以从那个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_WRITEABLE
创建一个共享首选项文件,那么任何知道这个文件标识符的其他应用都能访问你的数据。
为了写入一个共享首选项文件,在你的 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);
原文地址:http://blog.csdn.net/kdjr3rbqb3q/article/details/41698887