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’则允许登录,否则提示信息错误,继续输入账号密码)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值