一、SharedPreference存储
不同于文件的存储方式,SharePreferences是使用键值对的方式来存储数据。也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来,而且SharePreferences还支持多种不同的数据类型存储。
1.将数据存储到SharedPreferences中
要想使用SharedPreferences来存储数据,首先要获取到SharedPreferences对象。Android中提供了主要提供了3种方法来获取SharedPreferences
1.Context类中getSharedPreferences()方法
此方法接受两个参数,第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,SharedPreferences文件都是存放在/data/data/package name/shared_prefs/目录下的。第二个参数用于指定操作模式,目前只有MODE_PRIVATE这一标准模式可选,它是默认的操作模式和直接传入0的效果是相同的,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。其他几种操作模式均已废弃,这里不再详细介绍。
2.Activity中的getPreferences()方法
这个方法和getSharedPreferences()方法很相似,不过它只接受一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为SharedPreferences的文件名。
3.PreferenceManager类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。得到SharedPreferences对象之后,就可以向SharedPrefences文件中存储数据了,主要分为3步实现。
(1)调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
(2)向SharedPreferences.Editor对象中添加数据,比如添加一个布尔数据就使用putBoolean()方法,添加一个字符串就用putString()方法,依次类推
(3)调用apply()方法将添加的数据提交,从而完成数据存储工作。
2.从SharedPreferences中读取数据
SharedPreferences对象中提供了一系列的get()方法,用于对存储的数据进行读取,每种get方法都对应了SharePreferences.Editor中的一种put方法。比如读取一个布尔型数据就是用getBoolean()方法,读取一个字符串就使用getString()方法。这些get方法都接收两个参数,第一个参数是键,传入存储数据时使用的键就可以的到相应的值了;第二个参数是默认值,即表示当传入的键找不到对应的值时会以什么样的默认值返回。