Android学习之SharedPreferences数据存储
一、食用方法:
1、得到SharedPreferences对象
2、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
3、向SharedPreferences.Editor对象中添加数据。
4、调用commit方法将添加的数据提交。
二、详细过程:
1、得到SharedPreferences对象
方法1:
Context.getSharedPreferences(文件名称,操作模式)
- 1
文件名称不存在就会创建一个,操作模式有两种:
MODE_PRIVATE
:默认操作模式,直接在把第二个参数写0就是默认使用这种操作模式,这种模式表示只有当前的应用程序才可以对当前这个SharedPreferences
文件进行读写。
MODE_MULTI_PRIVATE
:用于多个进程共同操作一个SharedPreferences
文件。
方法2:
Activity.getPreferences(操作模式)
- 1
使用这个方法会自动将当前活动的类名作为
SharedPreferences
的文件名,底层调用的是下面这个方法
Activity.getSharedPreferences(String name, int mode)
我们也可以直接调用getSharedPreferences
这个方法,传入自定义的名字。
方法3:
PreferenceManager.getDefaultSharedPreferences(Context)
- 1
使用这个方法会自动使用当前程序的包名作为前缀来命名
SharedPreferences
文件
2、调用SharedPreferences对象的edit()方法来获取一个
SharedPreferences.Editor对象。
SharedPreferences.Editor editor = getSharedPreferences(“data”,MODE_PRIVATE).edit();
- 1
3、向SharedPreferences.Editor对象中添加数据。
editor.putString(“name”,”Lily”); //以键值对形式存储
editor.putInt(“age”,”20”); //以键值对形式存储
editor.putBoolean(“married”,false); //以键值对形式存储
- 1
- 2
- 3
4、调用commit方法将添加的数据提交。
editor.commit();
- 1
三、存储数据代码示例:
SharedPreferences pref = MainActivity.this.getSharedPreferences(“data”,MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(“name”,”lily”);
editor.putString(“age”,”20”);
editor.putBoolean(“married”,false);
editor.commit();
- 1
- 2
- 3
- 4
- 5
- 6
四、读取数据代码示例:
SharedPreferences pref = getSharedPreferences(“data”,MODE_PRIVATE);
String name = pref.getString(“name”,”“);//第二个参数为默认值
int age = pref.getInt(“age”,0);//第二个参数为默认值
boolean married = pref.getBoolean(“married”,false);//第二个参数为默认值
- 1
- 2
- 3
- 4
五、实例
- 全局定义变量
private SharedPreferences sharedPreferences;//存储数据
private SharedPreferences.Editor editor;//存储数据
- 1
- 2
onCreate
需要做的
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean issave = sharedPreferences.getBoolean("SAVE", false);//得到save文件存的值,得不到会返回false
if (issave)
{
String string_ip = sharedPreferences.getString("IP", "192.168.4.1");//取出ip,不存在返回192.168.4.1
String int_port = sharedPreferences.getString("PORT", "8080");//取出端口号,不存在返回8080
editTextIP.setText(string_ip);
editTextPort.setText(int_port);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 点击按钮,连接上服务器需要做的
editor = sharedPreferences.edit();
editor.putString("IP", stringIP);//记录ip
editor.putString("PORT", editTextPort.getText().toString());//记录端口号
editor.putBoolean("SAVE", true);//写入记录标志
editor.commit();
- 1
- 2
- 3
- 4
- 5
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/81584002
- 点赞
- 收藏
- 关注作者
评论(0)