Android学习之SharedPreferences数据存储

举报
ReCclay 发表于 2022/02/23 00:31:44 2022/02/23
【摘要】 一、食用方法: 1、得到SharedPreferences对象 2、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。 3、...

一、食用方法:

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200