Android开发——登录案例——SharedPreferences简单存储


一、SharedPreferences简单存储

这里我们通过登录案例来讲解SharedPreferences简单存储的使用。

1.需求描述

在这里插入图片描述

2.需求分析

2.1.保存登录用户名、密码

第一次输入用户名密码之后,再次打开登录界面,界面上自动填充上次输入的用户名和密码

2.2.保存登录状态

登录成功之后,再次打开APP,直接进入APP主页面,不需要再次登录。
点击退出登录按钮,退出登录状态,打开登录界面

二、登录案例任务分解

1.需要保存哪些数据

用户名(String)
密码 (String)
登录状态 (int,可以用1代替登录、0代替非登录)

2.什么时候保存数据

2.1.登录成功时,保存用户名、密码、登录状态(1)
2.2.退出登录时,保存登录状态(0)

3.什么时候读取数据

3.1.显示登录界面时,读取用户名、密码数据,用于显示
3.2 打开App时,读取登录状态数据,用于判断显示哪个界面

  1. 如果当前是非登录状态,打开登录界面显示
  2. 如果是登录状态,打开主页面显示

三、主页MainActivity代码实现

1.定义全局变量


final String sf_name="login_info"; //定义SharedPreferences 存储对象名
    SharedPreferences sf;
    SharedPreferences.Editor editor;
    EditText et_user, et_pwd;

2.onCreate()方法

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        sf = getSharedPreferences(sf_name,MODE_PRIVATE); //获取SharedPreferences 存储对象
        editor=sf.edit();//获取该对象的编辑器

        //TODO 1. 判断登录状态
        int state=sf.getInt("login_state",0);
        if(state==1){
            Intent intent = new Intent(this,InfoActivity.class);
            startActivity(intent);
            finish();
        }


        setContentView(R.layout.activity_main);

        et_user = findViewById(R.id.et_user);
        et_pwd = findViewById(R.id.et_pwd);

        //TODO 2. 读取上次输入的用户名密码显示
        et_user.setText(sf.getString("username",""));
        et_pwd.setText(sf.getString("password",""));

    }

3.onLogin()方法


 public void onLogin(View view){
        //TODO 用户名密码不能为空
        if(et_user.getText().toString().equals("") || et_pwd.getText().toString().equals("")){
            Toast.makeText(MainActivity.this,"用户名和密码不能为空!",Toast.LENGTH_SHORT).show();
            return;
        }

        //TODO 3. 保存登录状态和用户名密码
        editor.putInt("login_state",1);
        editor.putString("username",et_user.getText().toString());
        editor.putString("password",et_pwd.getText().toString());
        editor.commit();

        //TODO 打开第二个Activity,并把用户名传递过去
        Intent intent = new Intent(this,InfoActivity.class);
//        intent.putExtra("username",et_user.getText().toString());
        startActivity(intent);
        finish();

    }

四、个人信息InfoActivity代码实现

1.定义全局变量

 final String sf_name="login_info";
    SharedPreferences sf;
    SharedPreferences.Editor editor;

2.onCreate()方法

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_info);

        tw_user = findViewById(R.id.tw_user);
        tw_name = findViewById(R.id.tw_name);
        tw_phone = findViewById(R.id.tw_phone);
        tw_email = findViewById(R.id.tw_email);

        //TODO 1. 读取用户名信息并显示
        sf = getSharedPreferences(sf_name,MODE_PRIVATE);
        editor=sf.edit();
        tw_user.setText("账号:"+sf.getString("username",""));
        }

3.onLogout()方法

public void onLogout(View view){

        //TODO  2. 修改登录状态,启动MainActivity,并将当前页面关闭
        editor.putInt("login_state",0);
        editor.commit();
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
        finish();
    }

总结

以上就是今天要讲的内容,本文仅仅简单介绍了登录案例的实现步骤。
大家在此基础上可以完善程序功能,判断用户名和密码是否合法(如用户名=‘123’,密码=‘123’则允许登录,否则提示信息错误,继续输入账号密码)。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 【视频列表】 第2章 工欲善其事 必先利其器——搭建Android开发环境 第3章 清点可用资本——AndroidSDK介绍 第5章 千里之行始于足下——第一个应用HelloWorld 第7章 良好的学习开端——Android基本组件介绍之我的美丽我做主——Android中应用界面布局 第7章 良好的学习开端——Android基本组件介绍之不积跬步无以至千里——常用widget组件介绍 第7章 良好的学习开端——Android基本组件介绍之友好的菜单——menu介绍与实例 第7章 良好的学习开端——Android基本组件介绍之Android应用的灵魂——Intent和Activity介绍与实例 第7章 良好的学习开端——Android基本组件介绍之用好列表,做好程序——列表(ListView)介绍与实例 第7章 良好的学习开端——Android基本组件介绍之友好地互动交流——对话框(Dialog)介绍与实例-1 第7章 良好的学习开端——Android基本组件介绍之友好地互动交流——对话框(Dialog)介绍与实例-2 第7章 良好的学习开端——Android基本组件介绍之温馨的提醒——Toast和Notification应用 第8章 移动信息仓库——Android的数据存储操作之Android数据存储概述 第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-1 第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-2 第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 第10章 一切为用户服务——Service应用实例 第12章 Android综合案例一——RSS阅读器实例 第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 第15章 Android综合案例四——在线音乐播放器 第16章 Android综合案例五——手机信息查看助手

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值