<强> 1。简介强>
SharedPreferences是一种轻型的数据存储方式,通过键键值对的方式将数据存储在xml文件中,常用于存储简单的配置信息。
<强> 2。使用方式强>
<强> 2.1获取SharedPreferences对象强>
Android中可通过以下三种方式获取SharedPreferences对象:
2.2.1上下文类中的getSharedPreferences ()
接收两个参数,第一个参数指定存储数据的文件,若指定文件不存在,则新建该文件,存放目录为“/数据/数据/package_name/shared_prefs/?其中package_name为包名。
第二个参数则为操作模式,主要有两种:
<代码> MODE_PRIVATE> 代码:私有模式,默认情况下的模式,与直接传入0作为参数效果一样,表示只有当前程序可对这个文件进行操作。
<代码> MODE_MULTI_PROCESS> 代码:多进程模式,允许多个进程对该文件进行操作。
2.2.2活动类中的getPreferences ()
这个方法与上一个方法比较相似,不同之处在于它只接收一个参数,用于指定操作模式,而无需指定文件名,这个方法默认将当前活动的类名作为存储数据的文件名。
2.2.3 PreferenceManager类中的getDefaultSharedPreferences ()
这是一个静态方法,接收一个上下文参数,使用当前应用程序的包名作为存储数据的文件名。
<强> 2.2获取SharedPreferences.Editor对象强>
SharedPreferences对象本身是只可以读取而不能保存数据的,需要保存数据则要调用SharedPreferences对象的编辑()方法获取一个编辑器对象。
<强> 2.3通过putXxx方法存储数据强>
得到编辑器对象后,则可调用它的putXxx方法添加数据,这里的Xxx指的是添加的数据类型,例如存储字符串数据则调用putString()方法。这个方法接收两个参数,第一个参数为键值,第二个参数为数据的值,即一个键值对。
<强> 2.4提交变化强>
添加或移除(删除方法)数据后,需要调用编辑器对象的commit()方法将所作变化提交。
<强> 2.5获取存储的数据强>
获取已经存储的数据较为简单,直接调用SharedPreferences对象的getXxx方法即可,使用方法与编辑对象的putXxx类似。这个方法也是接收两个参数,第一个参数指定要获取的数据的键值,第二个参数指定当获取的数据不存在时所返回的默认值。
<强> 3。范例,实现保存用户名的功能强>
布局:
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt; LinearLayout xmlns: android=" http://schemas.android.com/apk/res/android " xmlns:工具=" http://schemas.android.com/tools " android: layout_width=" match_parent " android: layout_height=" match_parent " android:重力=" center_horizontal " android:取向=按怪薄? 工具:上下文=癱om.studying.myapplication.MainActivity”比; & lt; !——用户名——比; LinearLayout & lt; android: layout_width=" match_parent " android: layout_height=" wrap_content " 面向android:="水平"比; & lt; TextView android: layout_width=" 0 dp” android: layout_height=" wrap_content " android: layout_weight=" 1 " android:重力="中心" android:文本="用户名“/比; EditText & lt; android: id=癅 + id/用户名” android: layout_width=" 0 dp” android: layout_height=" wrap_content " android: layout_weight=" 4 "/比; & lt;/LinearLayout> & lt; !——密码——比; LinearLayout & lt; android: layout_width=" match_parent " android: layout_height=" wrap_content " 面向android:="水平"比; & lt; TextView android: layout_width=" 0 dp” android: layout_height=" wrap_content " android: layout_weight=" 1 " android:重力="中心" android:文本="密码”/比; EditText & lt; android: id=癅 + id/passward” android: layout_width=" 0 dp” android: layout_height=" wrap_content " android: layout_weight=" 4 " android: inputType=" textPassword "/比; & lt;/LinearLayout> & lt; !——是否记住用户名——比; & lt;复选框 android: id=癅 + id/记得” android: layout_width=" wrap_content " android: layout_height=" wrap_content " android:检查=" false " android:文本="记住用户名”/比; & lt; !——登录——比; & lt;按钮 android: id=癅 + id/登录” android: layout_width=" 200 dp” android: layout_height=" 35 dp” android:文本="登录” android: textSize=" 12 sp "/比; & lt;/LinearLayout>android中SharedPreferences实现存储用户名功能