Android学习(20) -- 数据存储之SharedPreferences(存储账号密码)

本文介绍了Android中SharedPreferences的使用,主要用于存储轻量级配置信息,如登录账号和密码。它以键值对形式存储数据,并保存在应用的特定路径下。通过getSharedPreferences方法获取对象,使用Editor进行数据存取操作,最后通过commit()提交更改。示例展示了如何保存和读取登录账号和密码。

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

SharedPreferences

SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进行读取和存入。
SharedPreference 文件保存在/data/data/< package name > /shared_prefs 路径下

通过Activity自带的getSharedPreferences方法,可以得到SharedPreferences对象。
public abstract SharedPreferences getSharedPreferences (String name, int mode);
name:表示保存后 xml 文件的名称
mode:表示 xml 文档的操作权限模式(私有,可读,可写),使用0或者MODE_PRIVATE作为默认的操作权限模式。

  • 往SharedPreferences里写数据
    数据的存入是通过SharedPreferences对象的编辑器对象Editor来实现的。通过编辑器函数设置键值,然后调用commit()提交设置,写入xml文件。

    //拿到一个SharedPreferences对象
    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
    //拿到编辑器
    Editor ed = sp.edit();
    //写数据
    ed.putBoolean("name", name);
    ed.commit();
    
  • 从SharedPreferences里取数据
    通过SharedPreferences对象的键key可以获取到对应key的键值。

    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
    //从SharedPreference里取数据
    String name = sp.getBoolean("name", "");
    

代码
登录保存账号和密码

public void login(View v){

    String name = et_name.getText().toString();
    String pass = et_pass.getText().toString();

    CheckBox cb = (CheckBox) findViewById(R.id.cb);
    //判断选框是否被勾选
    if(cb.isChecked()){
        //使用sharedPreference来保存用户名和密码
        //路径在data/data/com.exp.sharedpreference/shared_prefs
        SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
        //拿到sp的编辑器
        Editor ed = sp.edit();
        ed.putString("name", name);
        ed.putString("pass", pass);
        //提交
        ed.commit();
    }

    //创建并显示吐司对话框
    Toast.makeText(this, "登录成功", 0).show();
}

读取账号和密码

    public void readAccount(){
        SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
        String name = sp.getString("name", "");
        String pass = sp.getString("pass", "");

        et_name.setText(name);
        et_pass.setText(pass);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值