SharedPreferences使用介绍

本文介绍了如何在Android中使用SharedPreferences进行数据存储。通过代码示例展示了如何保存和获取用户名及密码,以及如何处理记住密码的功能。登录按钮点击事件中,检查用户名和密码是否为空,并根据是否记住密码来决定是否保存数据到SharedPreferences。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取SharedPreferences的两种方式:
1 调用Context对象的getSharedPreferences()方法
2 调用Activity对象的getPreferences()方法
两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他 组件共享.
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.
 
SharedPreferences的四种操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
 
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.
将数据保存至SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();
 
从SharedPreferences获取数据:
SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");

*********使用sharedPreferences存储数据
1.通过Context对象的方法 创建一个SharedPreference sharedPreferences对象

 getSharedPreferences( String filename, Mode mode);
 //name:sharedpreference文件的名称    mode:文件的操作模式
SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);
  
2.通过sharedPreferences对象的方法edit()  获取一个Editor对象
Editor editor = sharedPreferences.edit();
 
3.往Editor editor编辑器对象中添加(键值对)数据---putString(key,value);
editor.putString("username", username);
editor.putString("password", password);
4.提交Editor对象添加的数据。 ---   commit()
editor.commit();


*********使用sharedPreferences的方法 读取数据
1.通过Context对象getSharedPreferences(arg1,arg2)方法 创建一个SharedPreference对象
rg1---私有文件名    arg2---访问私有文件的权限模式 
SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);
                        
2.通过sharedPreference获取存放的数据
//key:存放数据时的key   defValue: 默认值,根据业务需求来写
String username = sharedPreferences.getString("username", "");
String password = sharedPreferences.getString("password", "");
通过PreferenceManager可以获取一个默认的sharepreferences对象        
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);


下面做一个类似记住密码功能的Demo,界面如下

代码示例:

布局文件activitymain.xml

[html]  view plain   copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.               xmlns:tools="http://schemas.android.com/tools"  
  4.               android:layout_width="match_parent"  
  5.               android:layout_height="match_parent"  
  6.               android:orientation="vertical"  
  7.               android:paddingBottom="@dimen/activity_vertical_margin"  
  8.               android:paddingLeft="@dimen/activity_horizontal_margin"  
  9.               android:paddingRight="@dimen/activity_horizontal_margin"  
  10.               android:paddingTop="@dimen/activity_vertical_margin" >  
  11.   
  12.     <EditText  
  13.             android:layout_width="fill_parent"  
  14.             android:layout_height="wrap_content"  
  15.             android:id="@+id/usernameEditText" android:hint="请输入用户名"/>  
  16.     <EditText  
  17.             android:layout_marginTop="10dp"  
  18.             android:layout_marginBottom="10dp"  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dmfrm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值