1.SharedPreferences存储
SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把相应的值取出来
SharePreferences是一个接口,不能直接使用,但可以通过以下两种方法获得:
1.1.1Context类的getSharePreferences(String name ,ine mode)方法来获得一个SharePreferences对象:
此方法接收两个参数,第一个参数用于指定SharedPreference文件的名称,即存储XML文件的名称,如果存在,则会直接引用,如果指定的文件不存在则会创建一个,SharedPreference文件都是存放在/data/data/<包名>/shared_prefs/存储的XML文件目录下,第二个参数表示文件的存储模式(该方式创建的XML文件可以被同一个软件的Activity引用)。
文件的几种存储模式:
MODE_PRIVATE:表示私有文佳,该文件智能被创建他的文件所访问
MODE_APPEND:表示新的存储内容会添加在原有文件内容的后面。
MODE_WORLD_READABLE:表示该文件能被所有的文件读取,但是不可以写入。
MODE_WORLD_WEITABLE:表示该文件能被所有的文件写入,也可以读取
MODE_MULTI_PROCESS:表示改文件可以被多个进程同时访问,适用于Android2.3及之后的版本。
1.1.2:调用Activity对象的getPreferences(int mode)方法
该方法有一个参数,表示文件的存储模式,具体模式童第轶中相同,这种方法获得的对象只能被该方法所在的Activity所调用
1.2还要创建一个SharePreferences.Editor类的对象,该类负责具体的写入操作,创建方法使通过SharePreferences类的edit()方法来创建。
通常有以下几种方法:
putBoolean(String key,boolean value) putString(String key,String value) putInt(String key,int value) putFloat(String key,float value) putLong(String key,long value) commit();//在执行完各种写入、删除、修改的操作后,通过此方法来正式提交数据,确认存储文件的数据变化 clear();//清除键值对的方法 remove(String key);//删除官集资所对应的值 getAll();//读取存储文件中的所有数据,返回一个Map类型的值,来存放所有的键值对 getBoolean(String key,boolean defValue) getString(String key,String defValue) getInt(String key,String defValue) getFloat(String key,String defValue) getLong(String key,String defValue) contains(String key) registerSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注册监听器,来监听SharePreferences的更改事件,在onCreate()方法中设置 unregisterSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注销监听器,不再监听SharePreferences的更改事件。
存储数据
得到SharedPreference对象之后,就可以开始向SharedPreference文件中存储数据了,主要有三步:
a.使用SharedPreference对象的edit()方法来获取一个SharedPreference.Editor对象
b.向SharedPreference.Editor对象中添加数据,比如添加一个布尔型数据就是用putBoolean方法,添加一个字符串就是用putString()方法,以此类推
c.调用commit()方法将添加的数据提交,从而完成数据存储操作
如:
private SharePreferences sp; //创建一个SharePreferences接口的实例对象,将生成一个XML名称为demo_01,模式为MODE_PRIVATE sp=this.getSharedPreferences("demo_01",MODE_PRIVATE); //通过edit()方法创建一个SharePreferences.Editor类的实例对象 SharePreferences.Editor editor =sp.edit(); //通过putString()方法,将数据存入文件中 editor.putString("name","sssss"); //用commit()方法予以正式提交 editor.commit();
打开文件,可看到如下代码:
<map> <string name="name">sssss</string> </map>
删除数据:
editor.clear();//清除数据
查询数据:
String name = getString("name","lisi");
1.3从SharedPreferences中读取数据
SharedPreferences对象中提供了一系列的get方法用于读取数据,每种get对应了一种put方法
get方法接收两个参数,第一个是键,第二个参数是默认值,即当传入的键找不到对应的值时,会以什么样的默认值进行返回
可以实现设置密码,记住密码功能。