记住密码(SharedPrefecences应用)

SharedPreferences

其本质是基于XML文件存储的键值对数据,通常用来存储比较简单的配置信息。一般存储String,int之类的简单的数据类型。一些自定义的数据类型要通过转码较为麻烦不建议使用。


使用

SharedPreference本身只是读取数据的作用,而对数据存储修改需要通过Editor对象进行操作。

数据一般存在/data/data/<pakagename>/shared_pref/目录下

三种方法获取SharePreferences对象
  • Context类中的getSharedPreferences("fileName",model)方法。
    参数前者是文件名,后者是操作模式。操作模式主要用其两种:
    MODE_PRIVATE只有当前程序可以进行读写。
    MODE_MULTI_PROCESS会有多个进程对同一个SharedPreferences文件进行读写。
  • Activity类中的getPreferences()方法
    默认将当前活动的类名作为文件名。
  • PreferenceManager类中的getDafaultSharePreferences(context)方法
    将程序的包名作为前缀命名文件。

记住密码实现

1、简单地设计界面

不累述,详情看图,完成后初始化控件。

界面.png
2、SharedPreferences实现

在main.activity中添加如下代码:

        //初始化SharedPreferences
    pref = getSharedPreferences("userdatas",MODE_PRIVATE);
    editor = pref.edit();

    if(pref.getString("name","")!= null){//如果存储的数据中找到name的数据不为空
        nameInput.setText(pref.getString("name",""));
        passwordInput.setText(pref.getString("password",""));//有数据则填充
    }

    //按钮
    loginBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(rememberPassword.isChecked()) {//如果是记住密码
                String userName = nameInput.getText().toString();
                String userPassword = passwordInput.getText().toString();
                editor.putString("name", userName);
                editor.putString("password", userPassword);

                Toast.makeText(MainActivity.this, "已经存储了用户名密码", Toast.LENGTH_SHORT).show();
            }else{
                editor.clear();
                Toast.makeText(MainActivity.this, "将不会存储您的数据并清除了旧的账号数据", Toast.LENGTH_SHORT).show();
            }
            editor.commit();//修改完必须提交才能生效
        }
    });
3、结果展示
图片.png

上图是已经登陆存储了数据。可以用FileExplorer查看一下,在data/data/<包名>/shared_prefs/下,可见已经存储了数据文件。

图片.png

导出可以查看数据也一致,为xml格式。

图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 任何一个应用程序,其实说白了就是在不停地和数据打交道,我们聊QQ、看新闻、刷微博,所关心的都是里面的数据,...
    AndYMJ阅读 1,755评论 2 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,726评论 25 709
  • 1.引言   一般在做一些面试题的时候,Android有几种数据存储方案这个问题是经常碰到的。在我们实际应用中,任...
    忆念成风阅读 2,176评论 0 10
  • 寒风瑟瑟 寒风瑟瑟 寒风瑟瑟 饥鹰飞旋 冻死的野马 喂着草原 白雪茫茫,白雪茫茫 白雪茫茫,山川消藏 人群在途中...
    鲸香阅读 437评论 0 0
  • 公元二零一六年 不是突然回忆第一天 相互还没见面就腼腆 未想过如此变成了我们的后面 说两个姑娘 你带给我无法比说的...
    木皆森阅读 244评论 0 0