解析

什么是Shared Perferences

应用场景

  • 配置信息
  • 主题信息
  • 游戏的积分信息等

存储路径

在本应用中的data-data-应用包-自定义名称xml文件下保存写入的数据信息

使用

获取步骤

读取步骤

实例

代码

1、需求:实现自动登录,例如qq的可以设置自动登录,然后下一次就不用再写登录账号密码

2、activity_main.xml:简易实现输入框

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context=".MainActivity"> <EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="QQ号/手机号/邮箱"
android:layout_marginTop="300dp"/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:layout_marginTop="20dp"/>
<ImageButton
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/login"
android:layout_gravity="center"/>
</LinearLayout>

3、MainActivit.java

public class MainActivity extends AppCompatActivity {
//定义后台账号和密码
private String name = "fxz", pwd = "123"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取编辑框用户名和密码
EditText username_EditText = findViewById(R.id.username);
EditText password_EditText = findViewById(R.id.password);
//获取登录按键
ImageButton login = findViewById(R.id.login);
//获取Shared Preferences对象
final SharedPreferences sharedPreferences = getSharedPreferences("qqAutoLogin", MODE_PRIVATE);
/**********实现自动登录功能************/
//获取账号信息
String username = sharedPreferences.getString("username", null);
String password = sharedPreferences.getString("password", null);
//判断用户名和密码是否为空
if (username != null && password != null) {
//如果用户名和密码相同,实现自动登录
if (username.equals(name) && password.equals(pwd)) {
//通过Intent跳转登录
Intent intent = new Intent(MainActivity.this, MessageActivity.class);
//启动跳转界面
startActivity(intent);
}
} else {
/**********实现手动登录并储存账号和密码************/
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取输入的账号和密码
String local_username=username_EditText.getText().toString();
String local_password=password_EditText.getText().toString();
//获取Editor对象
SharedPreferences.Editor editor=sharedPreferences.edit();
if(local_username.equals(name) && local_password.equals(pwd)){
//这里保存账号和密码并提交有些多余
editor.putString("username",local_username);
editor.putString("password",local_password);
//提交信息
editor.commit();
//通过Intent跳转登录
Intent intent = new Intent(MainActivity.this, MessageActivity.class);
//启动跳转界面
startActivity(intent);
Toast.makeText(MainActivity.this, "已保存账号和密码", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "账号和密码错误", Toast.LENGTH_SHORT).show();
}
}
});
}
}
}

文件查看

使用Android Studio

最新文章

  1. 2015 - 准备读书List
  2. StringBuilder 和 StringBuffer
  3. jQuery 取值、赋值的基本方法
  4. cookie的使用
  5. 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法
  6. Linux服务器的初步配置流程
  7. Codeforces Round #256 (Div. 2/A)/Codeforces448A_Rewards(水题)解题报告
  8. Hadoop的基本命令【转载】
  9. Mac设置
  10. delphi的ArrayList
  11. 自己动手系列——实现一个简单的ArrayList
  12. [LeetCode]Rotate Image(矩阵旋转)
  13. 使用nginx处理静态资源请求,其余交给node
  14. sql中with as测试实例
  15. 为网站添加emoji表情的支持
  16. 函数使用十二:BAPI_MATERIAL_BOM_GROUP_CREATE(CS61)
  17. LVS原理详解(3种工作模式及8种调度算法)
  18. spoj TBATTLE 质因数分解+二分
  19. 20165203《Java程序设计》第三周学习总结
  20. CS231n课程笔记翻译8:神经网络笔记 part3

热门文章

  1. hive中对时间处理的函数总结
  2. jenkins目录
  3. 别再写一堆的 for 循环了!Java 8 中的 Stream 轻松遍历树形结构,是真的牛逼
  4. Appium+RobotFrameWork测试环境搭建
  5. pip 下载换源
  6. 「SOL」Quick Tortoise (Codeforces)
  7. for循环axios套axios调用,同步调取
  8. 商城登录/三方登录OAUTH2/单点登录
  9. Java枚举类的学习
  10. Linux Shell开发功能点