Android进阶——数据存储之SharePreferences

—– 学会使用SharePreferences数据存储

数据存储的方式有哪几种?

① 使用SharedPreferences存储数据 

② 文件File存储数据

③ 数据库存储数据

SharePreferences存储

概念:
  1. SharePreferences是一种轻量级存储类;
  2. 以key-value形式存储,类型为任意类型;
  3. 存储在data/data/<包名>shared_prefs目录下;
  4. 保存的数据以XML存储。
步骤:

1、获得SharePreferences对象;
2、获得Editor对象;
3、通过Editor对象的putxxx函数,设置写入数据;
4、通过Editor对象的commit方法提交写入到文件中。

实例:

题目:使用SharePreferences完成记住密码功能效果。
效果图:
这里写图片描述

代码演示:

private int Rememberfrag = 0;//创建位图
private String password = "";//初始密码为空

btn监听事件

 btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String username = yonghuNAME.getText().toString();
                String password = psd.getText().toString();

                //1.创建SharedPreferences对象
                SharedPreferences sp = getSharedPreferences("spf.xml", MODE_PRIVATE);
                //2.创建Editor对象,写入值
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("name", username);

                //判断是否点击单选框记住密码
                if (box.isChecked()) {
                    Rememberfrag = 1;
                    editor.putString("password", password);
                    editor.putInt("remember_word", Rememberfrag);
                } else {
                    Rememberfrag = 0;
                    editor.putInt("remember_word", Rememberfrag);
                }
                //3.提交数据
                editor.commit();

                Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
            }
        });

提取数据

  //从sp文件(spf.xml)中取出"name""password",节点对应的值,"remember_word"对应的位置
        SharedPreferences sharedPreferences = getSharedPreferences("spf.xml", MODE_PRIVATE);
       //判断文件是否为空
        if (sharedPreferences!= null) {
            String name = sharedPreferences.getString("name", "");
            password = sharedPreferences.getString("password", "");
            int rememberfrag = sharedPreferences.getInt("remember_word", 0);

            //赋值给yonghuNAME
            yonghuNAME.setText(name);


            if (rememberfrag == 1) {
                psd.setText(password);
                box.setChecked(true);
            }

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值