SharedPerferences存储
SharedPreferences是使用键值对的方式来存储数据的,SharedPreferences文件是使用XML格式来对数据进行管理的
将数据存储到SharedPreferences中
获取到SharedPreferences对象
-
使用
Context
类中的getSharedPreferences(String name, int mode)
方法
name
参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,SharedPreferences文件都是存放在/data/data/(packageName)/shared_prefs目录下;mode
参数指定操作模式,MODE_PRIVATE是默认的操作模式,表示只有当前的应用程序可以对这个SharedPreferences文件进行读写,MODE_MULTI_PROCESS则是一般用于多个应用程序对同一个SharedPreferences文件进行读写的情况
-
Activity
类中的getPreferences(int mode)
方法
这个方法只接受一个模式参数,这个方法会自动将当前活动的类名做为SharedPreferences的文件名 -
PreferenceManager
类中的getDefaultSharedPreferences(Context context)
方法
这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名做为前缀来命名SharedPreferences文件
向SharedPreferences文件中存储数据
- 调用
SharedPreferences
对象的edit()
方法来获取一个SharedPreferences.Editor
对象
-
向
SharedPreferences.Eidtor
对象中添加数据,若添加布尔类型的就使用方法putBoolean()
,添加一个字符串则使用putString()
方法,以此类推 -
调用
commit()
方法将添加的数据提交,从而完成数据存储工作
调用clear()
方法,将SharedPreferences文件中的数据全部清除掉 -
存储代码如下:
saveData = (Button)findViewById(ID); saveData.setOnClickListener(new OnClickListener(){ @override public void onClick(View v){ //拿到SharedPreferences文件的编辑器 SharedPreferences.Eidtor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); //添加数据 editor.putString("name", "xiao") editor.putInt("age", 28); editor.putBoolean("married", false); //提交数据,完成存储 editor.commit(); } });
导出数据图:
从SharedPreferences中读取数据
SharedPreferences
对象中提供了一系列get方法用于对存储的数据进行读取,每种get方法都对应SharedPreferences.Editor
中的一种put方法,这些get方法都接收两个参数,一个是键(传入存储数据时使用的键就可以得到相应的值了),另一个参数是默认值(表示当传入的键找不到对应的值时,会以什么样的默认值进行返回)
-
代码如下:
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); String name = pref.getString("name", ""); int age = pref.getInt("age", 0); boolean married = pref.getBoolean("married", false); Log.d("MainActivity", "name is " + name); Log.d("MainActivity", "age is " + age); Log.d("MainActivity", "married is " + married);
网友评论